Kendo UI Grid:自定义下拉提供程序在视图模式下不显示文本

Posted

技术标签:

【中文标题】Kendo UI Grid:自定义下拉提供程序在视图模式下不显示文本【英文标题】:KendoUI Grid: Custom dropdown provider shows no text in view mode 【发布时间】:2018-07-04 19:48:19 【问题描述】:

我正在为我的 Web 应用程序使用 Kendo UI v2016.3.1118。

我在 Kendo UI 网格中使用编辑功能 (mode: “incell”)。我创建了一个带有编辑文本框、日期和数值的网格,它工作正常。 我现在要做的是对具有下拉值的列进行编辑。

我已经集成了一个自定义下拉提供程序,如 Telerik 示例(https://demos.telerik.com/kendo-ui/grid/editing-custom,演示:https://dojo.telerik.com/UjAGU)中所述。

到目前为止效果很好。但是,在我更改 DropDown 中的值并且单元格失去焦点后,显示切换回视图模式。它只在单元格的左上角出现一个红色的小指示器,表示值已更改(单元格为“脏”)。除红色指示符外,单元格为空(单元格中未显示任何值)。

在我的情况下,我的数据源中的下拉列表外文类型的列只有数字(外键)值。

我的数据源如下所示:


    Product ID: 1,
    ProductName: "Chai",
    Category: 1

Telerik 提供的示例中的数据源:


    Product ID: 1,
    ProductName: "Chai",
    Category: 
        CategoryID: 1,
        CategoryName: "Beverages",
        Description: "Soft drinks, coffees, teas, berries, and ales"
    

我尝试将单元格值设置为下拉列表的 Select-Event 中的选定文本。尽管如此,在视图模式下仍然没有显示下拉菜单的文本。不幸的是,我找不到合适的活动。事件closeCell 从来没有在我的星座中抛出。

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

【问题讨论】:

为什么不使用模式:“inline”而不是“incell”? In cell 用于批量编辑。 【参考方案1】:

我认为您的问题可能源于您在进行选择时 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 字段将使用所选项目进行更新。

希望这能解决您的问题。

【讨论】:

以上是关于Kendo UI Grid:自定义下拉提供程序在视图模式下不显示文本的主要内容,如果未能解决你的问题,请参考以下文章

从下拉列表中选择选项后,Kendo UI Grid 中的下拉菜单显示对象-对象

MVC Kendo UI Grid = 自定义按钮无法返回选定的行 ID

Kendo UI Web Grid 自适应渲染是不是独立于 Kendo 移动应用程序?

带有自定义JSON Web服务器的Kendo UI Grid - “未捕获的TypeError:this.replace不是函数”

Kendo UI Grid 自定义过滤器菜单在第一次过滤或清除后中断

Kendo Grid editing 自定义验证报错提示