【问题标题】:When editing a grid, how do I disable specific fields by row? Kendo UI ASP.Net MVC wrapper编辑网格时,如何按行禁用特定字段? Kendo UI ASP.Net MVC 包装器
【发布时间】:2013-08-09 10:33:10
【问题描述】:

我有一个使用 ASP.NET MVC 包装器的剑道网格,并且有多个列(比如第 1 列和第 2 列)。网格设置为 InCell 编辑模式。列 1、2 需要能够根据特定行的彼此值进行编辑(或阻止编辑)。

例如,如果第 1 列的值为真,则允许编辑第 2 列。 如果第 2 列的值为 false,则不允许编辑第 2 列。

有什么想法吗?

我找到了类似的示例,但使用了客户端扩展。

When editing a grid, how do I disable specific fields by row?

使用 ASP.Net MVC 包装器是否有类似的方法?

【问题讨论】:

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


【解决方案1】:

我们刚刚遇到了类似的问题,并找到了以下解决方案。这可能不是正确的方法,但它似乎适用于在行存在时禁用字段并在新行时启用。这个逻辑应该可以换成你需要的任何逻辑。

在您的 Kendo MVC 绑定中。 “disableOnEdit”是当单元格进入编辑模式时要调用的 Javascript 函数的名称。

@(Html.Kendo().Grid<yourModel>()
  .Name("grid")
...
  .Events(events => events.Edit("disableOnEdit"))
...

在你的 JavaScript 中:

function disableOnEdit(e) {
    if (e.model.isNew()) {
        // Leave it editable if the row is new.
    } else {
        // Disable the editor for Element in this row if the row already exists.
        var select = e.container.find('input[name=Element]').data('kendoDropDownList');
        select.enable(false);
    }
}

这种方法是从Kendo Grid Edit Docs借来的

请参阅关于不同条件的其他答案。

感谢 Chris Finlayson 对此进行配对。

【讨论】:

    猜你喜欢
    • 2012-12-22
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多