2

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

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

有任何想法吗?

我发现了类似的例子,但使用了客户端扩展。

编辑网格时,如何按行禁用特定字段?

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

4

1 回答 1

3

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

在您的 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 在这方面的配对。

于 2014-02-24T16:35:26.367 回答