【问题标题】:How to take value from DataValueField() of a Kendo().DropDownList() on change event如何在更改事件中从 Kendo().DropDownList() 的 DataValueField() 中获取值
【发布时间】:2019-08-19 13:51:29
【问题描述】:

我正在使用剑道网格和编辑器模板来显示我的数据。在编辑器中,我将 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
}

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

【问题讨论】:

  • 您如何从网格中访问下拉编辑器?是通过 UIHint 还是自定义模板?您应该能够避免使用更改功能,只需使用 data-bind 属性将下拉列表绑定到网格中提供的值。
  • @DavidShorthosehi,我正在使用自定义模板。如何使用数据绑定属性?你能举个例子吗?

标签: c# asp.net-mvc-4 kendo-ui-mvc


【解决方案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绑定回网格的行模型。

【讨论】:

  • 非常感谢.. 完成了一半。我可以在 data_bind 中添加多个项目吗?比如 data_bind = "value:{PARTNER_ID},data-code:{PARTNERCODE1}"
  • data_bind 旨在绑定到值、事件、属性和您可能已定义的任何自定义绑定器。如果要向控件添加另一个 data 属性,则可以像 data_code={YourValue} 一样添加它
  • 如何使用 jquery 访问 'data_code' 属性值?像 var code = $('#id').attr('data_code') 。这就是我卡住的地方!非常感谢您的帮助
  • 您应该能够像这样$('#id').data('code') 访问它,因为它将是数据收集的一部分
  • HtmlAttributes(new { maxlength = "", @class= "" , data_bind = "{PARTNER_ID}", data_code = "{PARTNERCODE1}" }) 我给了这样的和在 javascript 我试过 $ ('#id').data('code')。我将输出作为字符串“{PARTNERCODE1}”。发生了一些小错误..请纠正我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多