[英]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.