我有一个使用 ASP.NET MVC 包装器的剑道网格,并且有多个列(比如 col 1 和 2)。网格设置为 InCell 编辑模式。列 1、2 需要能够根据特定行的彼此值进行编辑(或阻止编辑)。
例如,如果第 1 列的值为真,则允许编辑第 2 列。如果第 2 列的值为 false,则不允许编辑第 2 列。
有任何想法吗?
我发现了类似的例子,但使用了客户端扩展。
使用 ASP.Net MVC 包装器是否有类似的方法?
我有一个使用 ASP.NET MVC 包装器的剑道网格,并且有多个列(比如 col 1 和 2)。网格设置为 InCell 编辑模式。列 1、2 需要能够根据特定行的彼此值进行编辑(或阻止编辑)。
例如,如果第 1 列的值为真,则允许编辑第 2 列。如果第 2 列的值为 false,则不允许编辑第 2 列。
有任何想法吗?
我发现了类似的例子,但使用了客户端扩展。
使用 ASP.Net MVC 包装器是否有类似的方法?
我们刚刚遇到了类似的问题,并找到了以下解决方案。这可能不是正确的方法,但它似乎适用于在行存在时禁用字段并在新行时启用。该逻辑应该能够交换为您需要的任何逻辑。
在您的 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);
}
}
对于不同的条件,请参阅提到的其他答案。
感谢 Chris Finlayson 在这方面的配对。