我正在为我的网络应用程序使用Kendo UI v2016.3.1118。
我在kendoui网格中使用编辑功能(模式:“incell”)。我创建了一个带有编辑文本框,日期和数值的网格,它工作正常。 我现在要做的是对具有下拉值的列应用编辑。
我集成了一个自定义下拉提供程序,如telerik示例(https://demos.telerik.com/kendo-ui/grid/editing-custom,demo:https://dojo.telerik.com/UjAGU)中所述。
到目前为止工作得很好。但是,在我更改DropDown中的值并且单元格失去焦点后,显示屏将切换回视图模式。它只在单元格的左上角出现一个小红色指示符,表示该值已更改(单元格为“脏”)。除红色指示符外,单元格为空(单元格中未显示任何值)。
在我的情况下,我的数据源中只有外部类型下拉列的数字(外键)值。
我的数据源看起来与此类似:
{ 产品编号:1, 产品名称:“柴”, 类别:1 }
telerik提供的样本数据源:
{ 产品编号:1, 产品名称:“柴”, 分类:{ CategoryID:1, CategoryName:“饮料”, 描述:“软饮料,咖啡,茶,浆果和啤酒” } }
我尝试将单元格值设置为下拉列表的Select-Event中的选定文本。尽管如此,仍然没有显示视图模式下拉列表的文本。不幸的是我找不到合适的活动。事件“closeCell”永远不会被扔进我的星座。
有什么想法吗? 问候 斯蒂芬
答案 0 :(得分:0)
我认为你的问题可能源于你做出选择时dropDownList返回的内容之间的差异(即整个对象,文本和值的完整),以及你的网格模型对象需要的内容(只是值)。
假设您有一个函数来创建编辑器,就像您引用的示例中的编辑器一样,是否可以尝试更改它以将valuePrimitive属性设置为true?
function categoryDropDownEditor(container, options) {
$('<input required name="' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
valuePrimitive: true,
autoBind: false,
dataTextField: "CategoryName",
dataValueField: "CategoryID",
dataSource: {
type: "odata",
transport: {
read: "https://demos.telerik.com/kendo-ui/service/Northwind.svc/Categories"
}
}
});
}
根据文件:
如果设置为true,将使用所选项目值字段更新View-Model字段。如果设置为false,则将使用所选项目更新View-Model字段。
希望这能解决您的问题。