繁体   English   中英

如何在更改事件中从Kendo()。DropDownList()的DataValueField()中获取值

[英]How to take value from DataValueField() of a Kendo().DropDownList() on change event

我正在使用Kendo网格和编辑器模板来显示我的数据。 在编辑器中,我将id赋予了DataValueField(),并将名字赋予了剑道下拉列表的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
}

目前,我正在获取名称,即; DataTextField()值。 相反,我需要DataValueField()。 预先感谢您的建议!

因此,根据您的评论,最简单的方法可能是使用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)绑定回网格的行模型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM