javascript - 使用导航属性创建 Kendo UI 网格模型的问题

标签 javascript kendo-ui kendo-grid

我正在使用 kendo ui 网格,并尝试为我的具有一些导航属性的模型添加 CRUD 操作。这是我的架构:

 schema: {
                data: function (data) {  
                    return data || [];
                },
                model: {
                    id: "Id",
                    fields: {
                        Id: { editable: false,
                            nullable: false,
                            type: "number"
                        },
                        Frequency: { type: "string" },
                        FREQ_POOL: { type: "object" },//THIS IS A NAV IN MY MODEL

                    }
                }
            }

这是我的网格:

 $("#AFTRCCFreqGrid").kendoGrid({
            dataSource: AFTRCCDS,

            columns: [
                //   { field: "Id", title: "Freq ID", format: "{0:c}", width: "120px" },
                { field: "Frequency", title: "Frequency", editor: categoryDropDownEditor, format: "{0:c}", width: "120px" },
               { field: "FREQ_POOL.Comments", title: "Comments", format: "{0:c}", width: "120px" },
                { command: ["edit", "destroy"], title: " ", width: "250px" }
            ],
            toolbar: ["create"],
            editable: "inline",
            pageable: true

        });

当我点击剑道网格中的“添加新记录按钮”时,出现以下错误:

Uncaught TypeError: Cannot read property 'Comments' of undefined(anonymous function) @ VM2305:3kendo.ui.DataBoundWidget.extend._rowsHtml @ kendo.all.js:55504kendo.ui.DataBoundWidget.extend._renderContent @ kendo.all.js:56181kendo.ui.DataBoundWidget.extend.refresh @ kendo.all.js:56084jQuery.extend.proxy.proxy @ jquery.js:548Class.extend.trigger @ kendo.all.js:181Observable.extend._process @ kendo.all.js:8378Observable.extend._change @ kendo.all.js:8317jQuery.extend.proxy.proxy @ jquery.js:548Class.extend.trigger @ kendo.all.js:181Observable.extend.splice @ kendo.all.js:5371Observable.extend.insert @ kendo.all.js:7587kendo.ui.DataBoundWidget.extend.addRow @ kendo.all.js:53021(anonymous function) @ kendo.all.js:53086jQuery.event.dispatch @ jquery.js:4665jQuery.event.add.elemData.handle @ jquery.js:4333

现在是事情。我手动向我的 SQL 表中添加了一行,并且我可以使用 kendo 网格成功地 UPDATE 该行。我可以编辑导航属性“评论”。但出于某种原因,当我创建一个新行时,我无法让它工作。

我的猜测是,当我加载表格时,它会加载导航属性,但是当我点击“添加新记录”时,它不知道如何“从头开始”创建导航属性,而当我更新一行时它已经加载了导航属性信息。

有什么想法可以解决这个问题吗?谢谢。

编辑:

附带说明一下,我拥有的其他使用类似代码的网格没有此问题,但是当我向网格添加新行并发布时,导航属性为空。它们唯一不为空的时间是在我编辑时。创建新行时,我应该如何“初始化”导航属性?

最佳答案

我认为在这种情况下您需要使用模板。对于评论字段,代码如下所示:

{
      field: "Comments", template: function(dataItem) {
      return dataItem.FREQ_POOL["Comments"];
    } 
  }

我创建了一个 jsbin to show how it fetches value from an object

希望对您有所帮助

关于javascript - 使用导航属性创建 Kendo UI 网格模型的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29526759/

相关文章:

javascript - Kendo Grid with kendo下拉列表

javascript - Kendo Grid -> 如何在添加单击按钮上触发自定义方法

javascript - 单击时滚动到Kendo Grid行-出现意外的JavaScript错误

javascript - 在浏览器中将 MS Word 文档转换为 PDF

javascript - 扩展 Parse.User

javascript - 全屏狭缝 slider 自动播放

jquery - KendoUI 网格选择行选择上的复选框,反之亦然

css - 带有 Bootstrap 颜色选择器的 Kendo UI 窗口,窗口总在最前面

javascript - 如何为单个剑道网格列设置最大宽度属性?

javascript - 循环内的拼接似乎不起作用