KendoUI Grid:自定义下拉提供程序在查看模式下不显示任何文本

时间:2018-01-25 14:13:57

标签: asp.net kendo-ui kendo-grid kendo-dropdown

我正在为我的网络应用程序使用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”永远不会被扔进我的星座。

有什么想法吗? 问候 斯蒂芬

1 个答案:

答案 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字段。

希望这能解决您的问题。