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

C# 如何从Kendo()的DataValueField()中获取值。更改事件时的DropDownList(),c#,asp.net-mvc-4,kendo-ui-mvc,C#,Asp.net Mvc 4,Kendo Ui Mvc,我使用剑道网格和编辑器模板来显示我的数据。在编辑器中,我给了剑道下拉列表的DataValueField()id和DataTextField()名称。在更改事件中,我无法获取DataValueField()。请参阅下面的代码 这是我的编辑器模板memocharrier.chtml @using System.Collections @(Html.Kendo().DropDownList() .DataValueField("PARTNERID") .DataTextField("PARTN

我使用剑道网格和编辑器模板来显示我的数据。在编辑器中,我给了剑道下拉列表的DataValueField()id和DataTextField()名称。在更改事件中,我无法获取DataValueField()。请参阅下面的代码

这是我的编辑器模板memocharrier.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
}
目前我的名字是ie;DataTextField()值。相反,我需要DataValueField()。
提前感谢您的建议

因此,根据您的评论,最简单的方法可能是使用
数据绑定
属性来简化绑定模型的过程。假设您也在为网格使用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
属性。你所需要做的就是把任何属性作为这个的值


根据此值是复杂(
对象
)还是简单(
字符串、int等
)基元类型,您可能需要将
基元
属性设置为
,以便仅将值字段(例如您分配的id)绑定回网格的行模型

如何从网格访问下拉编辑器?是通过UIHint还是自定义模板?您应该能够避免使用更改函数,只需使用数据绑定属性将下拉列表绑定到网格中提供的值即可。@DavidShorthosehi,im使用自定义模板。如何使用数据绑定属性?你能给我举个例子吗?非常感谢。。完成一半。我可以在数据绑定中添加多个项目吗?与data_bind=“value:{PARTNER_ID}类似,data code:{PARTNERCODE1}”data_bind旨在绑定到值、事件、属性和您可能定义的任何自定义绑定。如果要向控件添加另一个
data
属性,则可以像
data\u code={YourValue}
那样添加它。如何使用jquery访问“data\u code”属性值?比如var code=$('#id').attr('data#u code')。这就是我结巴的地方!非常感谢您的帮助,您应该能够像这样访问它。
$('#id').data('code')
,因为它将是数据收集HtmlatAttributes的一部分(new{maxlength=“”、@class=”、data_bind=“{PARTNER#id}”、data_code=“{PARTNERCODE1}”)我像这样给出,并在javascript中尝试了$('#id').data('code')。我得到的输出是字符串“{PARTNERCODE1}”。发生了一些小错误。。请纠正我