这是我的问题......
我希望将一个下拉列表绑定到我的Grid:
{
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
});
}
当我向网格添加新行时,一切正常, EXCEPT 。下拉列表加载正常并且选择了一个项目,但除非我更改为另一个项目,否则网格将无法识别所选项目(即使选择了项目,网格的数据源也会发送0)。
一种解决方案是让第一个项目始终为“选择一个”,其值为0,这将强制用户选择项目。但这远非理想。那么......还有其他建议吗?下拉列表是否有某种占位符?
由于
答案 0 :(得分:2)
这个问题在互联网上被多次讨论,每个用户以不同的方式描述它。创建新项时,您应该设置默认值,以便MVVM框架可以正确分配DropDownList的选定值,或者您应该在edit事件的帮助下手动完成。
换句话说 - 你的模型属性不应该为null - 它应该是字符串或数字,或者当你使用DropDownList更改值时它不会被正确更新(用于DropDOwnList的整个dataItem将被指定为值)。
Here 是更多信息。