猿问

如何在更改事件上从 Kendo().DropDownList()

我正在使用剑道网格和编辑器模板来显示我的数据。在编辑器中,我已将 id 指定给 DataValueField() 并将名称指定给 kendo 下拉列表的 DataTextField() 。在更改事件中,我无法获取 DataValueField()。看下面的代码


这是我的编辑器模板 MemoCarrier.chtml


@using System.Collections

@(Html.Kendo().DropDownList()

  .DataValueField("PARTNERID")

  .DataTextField("PARTNERNAME")


  .Name("AIRLINENAME")

  .BindTo((IEnumerable)ViewBag.lstAirline)

  .HtmlAttributes(new { maxlength = "", @class = "MNum" })

 .OptionLabel("-Select-Flight ")

 .Filter(FilterType.Contains)

 .Events(e =>

 {

   e.Change("MemoCarrier");

 })

)

这是我的更改功能


function MemoCarrier(e) {

    var AirlineName = this.value();

    alert(AirlineName) //it displays PARTNERNAME instead of PARTNERID

}

目前我正在获取 name ie;DataTextField() 值。相反,我需要 DataValueField()。提前感谢您的建议!


万千封印
浏览 93回答 1
1回答

繁华开满天机

因此,根据您的评论,最简单的方法可能是使用该data-bind属性来简化绑定模型的过程。假设您也在网格中使用 MVC 助手。因此,获取您的代码并添加以下内容:@(Html.Kendo().DropDownList()  .DataValueField("PARTNERID")  .DataTextField("PARTNERNAME")  .Name("AIRLINENAME")  .BindTo((IEnumerable)ViewBag.lstAirline)  .HtmlAttributes(new { maxlength = "", @class = "MNum", data_bind="value:{yourProperyNameHere}" }) .OptionLabel("-Select-Flight ") .Filter(FilterType.Contains))所以希望您能看到我所做的只是HtmlAttribute为您向控件添加一个新属性。您需要做的就是输入任何属性作为其值。根据该值是复杂 ( object) 还是简单 ( string, int etc) 基本类型,您可能需要将该Primitive属性设置为true,以便仅将值字段(例如您分配的 id)绑定回网格的行模型。
随时随地看视频慕课网APP
我要回答