Knockout Kendo 下拉列表获取所选项目的文本
Posted
技术标签:
【中文标题】Knockout Kendo 下拉列表获取所选项目的文本【英文标题】:Knockout Kendo dropdownlist get text of selected item 【发布时间】:2016-05-25 16:07:13 【问题描述】:我的应用程序是 MVC 5。我正在使用以下 Knockout Kendo 下拉列表:
<input data-bind="kendoDropDownList: dataTextField: 'name',
dataValueField: 'id', data: foodgroups, value: foodgroup " />
<hr />
Selected: <strong data-bind="text: foodgroup"> </strong>
<script>
var ViewModel = function ()
var self = this;
this.foodgroups = ko.observableArray([
id: "1", name: "apple" ,
id: "2", name: "orange" ,
id: "3", name: "banana"
]);
var foodgroup =
name: self.name,
id: self.id
;
this.foodgroup = ko.observable();
ko.bindingHandlers.kendoDropDownList.options.optionLabel = " - Select -";
this.foodgroup.subscribe(function (newValue)
alert(newValue.name);
);
;
ko.applyBindings(new ViewModel());
</script>
我正在尝试获取所选项目的文本。如果我使用 alert(newValue) 我得到 id,当我使用 newValue.name 或 newValue.Text 我得到未定义。
【问题讨论】:
【参考方案1】:我认为KendoDropDownList()
不支持将复杂对象作为数据值。
那么我认为更好的方法是使用ko.utils.arrayFirst()
。
为方便起见,我做了一个Jsfiddle example
希望有帮助
【讨论】:
谢谢你,Marco,这太棒了。是否可以将 name 设置为 observable 并仅绑定名称? 当我使用 ajax 填充下拉列表时: var data = db.FoodGroups.Select(c => new id = c.FoodGroupID, name = c.FoodGroupName ).ToList();找不到名字? 我已经更新了问题***.com/questions/35400673/…以上是关于Knockout Kendo 下拉列表获取所选项目的文本的主要内容,如果未能解决你的问题,请参考以下文章