这是我的问题...
我想要一个下拉列表绑定(bind)到我的网格,如下所示:
<小时/>{
field: "ContactTypeId",
hidden: true
},
{
field: "ContactTypeName",
title: "Type",
editor: ContactTypeAddressCombo
}
<小时/>
function ContactTypeAddressCombo(container, options) {
$('<input placeholder="A" data-bind="value:ContactTypeId"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataTextField: "Name",
dataValueField: "ContactTypeId",
dataSource: {
type: "json",
serverFiltering: true,
transport: {
read: {
contentType: "application/json; charset=utf-8",
type: "POST",
url: "../Services/svcContact_Type.asmx/Search",
dataType: "json",
cache: false
},
parameterMap: function(options, operation) {
options.AddressFlag = 1;
options.PhoneFlag = 1;
options.EmailFlag = 1;
return kendo.stringify(options);
}
},
schema: {
data: "d"
}
},
index: 0
});
}
<小时/>
一切都很完美,除了当我向网格添加新行时。下拉列表加载良好并选择了一个项目,但除非我更改为另一项目,否则网格将无法识别所选项目(即使选择了一个项目,网格的数据源也会发送 0)。
一个解决方案是让第一个项目始终为值为 0 的“选择一个”,这将强制用户选择一个项目。但这远非理想。那么...还有其他建议吗?下拉列表是否有某种占位符?
谢谢
最佳答案
这个问题在互联网上被多次讨论,每个用户都以不同的方式描述它。创建新项目时,您应该设置默认值,以便 MVVM 框架可以正确分配 DropDownList 的选定值,或者您应该在编辑事件的帮助下手动执行此操作。
换句话说 - 您的模型属性不应为空 - 它应该是字符串或数字,否则当您使用 DropDownList 更改值时,它不会正确更新(DropDOwnList 使用的整个 dataItem 将被分配为值)。
<强> Here 是更多信息。
关于jquery - Kendo Dropdownlist 未更新第一条记录上的 Kendo Grid 数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15146653/