我有一个使用ASP.NET MVC包装器的kendo网格,并且有多个列(比如col 1和2)。网格设置为InCell编辑模式。第1,2列需要能够根据特定行的彼此值进行编辑(或阻止编辑)。
例如,如果第1列值为true,则允许编辑第2列。 如果第2列值为false,则不允许编辑第2列。
有什么想法吗?
我找到了类似的示例,但使用了客户端扩展。
When editing a grid, how do I disable specific fields by row?
使用ASP.Net MVC包装器有类似的方法吗?
答案 0 :(得分:2)
我们遇到了类似的问题并找到了以下解决方案。它可能不是正确的方法,但它似乎适用于在行存在时禁用字段并在新行时启用。这个逻辑应该可以换成你需要的任何逻辑。
在你的剑道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对此进行配对。