如何在更改事件中从 Kendo().DropDownList() 的 DataValueField() 中获取值
How to take value from DataValueField() of a Kendo().DropDownList() on change event
我正在使用 kendo 网格和编辑器模板来显示我的数据。在编辑器中,我已将 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
}
目前我正在获取名称,即;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 被绑定回网格的行模型。
我正在使用 kendo 网格和编辑器模板来显示我的数据。在编辑器中,我已将 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
}
目前我正在获取名称,即;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 被绑定回网格的行模型。