Kendo Grid和外键列

时间:2014-11-14 10:51:32

标签: asp.net-mvc kendo-grid

我用外键列创建了我的MVC Kendo Grid,即columns.ForeignKey()。出现一个下拉列表,当我从列表中选择一个项目时,它既未标记更新记录,也未在服务器上触发任何ajax _Update。

突然间我发现每个带有组合框的网格都有这个问题。不知道如何进一步挖掘它。如果这是一个错误,那么我应该在哪里寻找现有的错误及其解决方法?

以下js文件存在于我的_Layout

> /2014.2.903/jquery.min.js
> /2014.2.903/kendo.all.min.js
> /2014.2.903/kendo.aspnetmvc.min.js
> /2014.2.903/kendo.modernizr.custom.js

修改 Take care of the nullable model properties

  

这是一个需要注意的重要注意事项。如果您的模型由整数,浮点数或甚至字节类型的可空属性组成,则Kendo网格将无法在创建或编辑事件时将模型属性更新为其值。它是Kendo网格中的一个已知错误,在其编辑器模板中有Kendo下拉列表。

解决方案:搜索网格中的所有下拉菜单,检索值并手动设置模型。在这里' Ordermaster'是我的网格的名称。它适用于GridEditMode.InLine。

function onSave(e) {
    // kendo nullable dropdown bug workaround
    $("#Ordermaster tbody [data-role=dropdownlist]").each(function () {
        var ddl = $(this).data("kendoDropDownList");
        if (ddl) {
            var v = ddl.value();
            var p = ddl.list.attr('id').replace('-list', ''); //<< TODO: optimize it
            if(p) e.model.set(p, v);
        }
    })
}

1 个答案:

答案 0 :(得分:0)

网格下拉工作,我们使用它很多。

选择项目后,您必须将更改回发给服务器。加速编辑模式(incell,inline),您可以在某个位置保存更改。 您还需要提供发送数据的创建和更新URL。还要确保HttpVerbs是正确的。 Kendo默认使用POST作为所有动作(如果我正确地回忆起他们使用POST的Read)。

当您的密钥可以为空时,可能会出现另一个问题。然后kendo将密钥解释为对象。 See here