12

剣道ドロップダウンリストでどのアイテムが選択されているかを判断する方法がわかりません。私のビューでは、そのモデルを次のように定義しています。

@model KendoApp.Models.SelectorViewModel

ViewModel は次のように定義されます。

public class SelectorViewModel
{
    //I want to set this to the selected item in the view
    //And use it to set the initial item in the DropDownList
    public int EncSelected { get; set; }

    //contains the list if items for the DropDownList
    //SelectionTypes contains an ID and Description
    public IEnumerable<SelectionTypes> ENCTypes
}

そして私の見解では:

@(Html.Kendo().DropDownList()
                    .Name("EncounterTypes")
                    .DataTextField("Description")
                    .DataValueField("ID")
                    .BindTo(Model.ENCTypes)
                    .SelectedIndex(Model.EncSelected)
                )

この DropDownList には期待する値が含まれていますが、ユーザーが送信ボタンをクリックしたときに、選択した値をコントローラーに戻す必要があります。コントローラーの [HttpPost] アクションから選択されたアイテムにアクセスできないことを除いて、すべて正常に動作します。では、DropDownList の値を非表示のフォーム フィールドに割り当てて、コントローラーで使用できるようにするにはどうすればよいでしょうか?

4

7 に答える 7

11

ドロップダウン リストから値を選択すると、select イベントで、選択した値を次のように取得できます。

@(Html.Kendo().DropDownList()
              .Name("booksDropDown")
              .HtmlAttributes(new { style = "width:37%" })
              .DataTextField("BookName")
              .DataValueField("BookId")
              .Events(x => x.Select("onSelectBookValue"))
              .DataSource(datasource => datasource.Read(action => action.Action("ReadBookDropDow", "PlanningBook").Type(HttpVerbs.Get)))
              .OptionLabel("Select"))

次のようなJavaScript関数、

   function onSelectBookValue(e) {    

                    var dataItem = this.dataItem(e.item.index());
                    var bookId = dataItem.BookId;
                 //other user code
    }

私はこれが誰かを助けると信じています

ありがとう

于 2015-07-16T11:33:51.783 に答える
5

こんにちは、私はちょうどこの問題を経験していました.2時間探し続けて、私自身の解決策を思いつきました.

したがって、剣道ドロップダウンに入札されたデータを取得する行は次のとおりです。

$("#customers").data("kendoDropDownList").dataSource._data[$("#customers").data("kendoDropDownList").selectedIndex].colour;

id customers を剣道ドロップダウンに指定した id に変更するだけです。

于 2016-10-07T09:42:18.140 に答える
2

おそらく、ビューで次のように Kendo DropDownList の DropDownListFor コンストラクトを使用する必要があります。

@(Html.Kendo().DropDownListFor(m => m.EncSelected)
                    .Name("EncounterTypes")
                    .DataTextField("Description")
                    .DataValueField("ID")
                    .BindTo(Model.ENCTypes)
                    .SelectedIndex(Model.EncSelected)
                )

このようにして、送信すると、POST リクエストで利用できるようになり、隠しフィールドをどこにも置く必要がなくなります。

ただし、何らかの理由で非表示フィールドを使用する必要がある場合は、そこに配置し、ドロップダウン リストの選択イベントをサブスクライブし、 JQuery を使用して (たとえば) 選択した項目を非表示フィールドに配置します。

それはあなたの選択です:)

于 2014-05-17T08:44:27.400 に答える
0

更新されたデモ

$("#EncounterTypes").kendoDropDownList().val();
于 2014-05-17T09:00:14.193 に答える