编辑网格时,如何按行禁用特定字段? Kendo UI ASP.Net MVC 包装器
Posted
技术标签:
【中文标题】编辑网格时,如何按行禁用特定字段? Kendo UI ASP.Net MVC 包装器【英文标题】:When editing a grid, how do I disable specific fields by row? Kendo UI ASP.Net MVC wrapper 【发布时间】: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 包装器是否有类似的方法?
【问题讨论】:
Make cell readonly in Kendo Grid if condition is met的可能重复 【参考方案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 对此进行配对。
【讨论】:
以上是关于编辑网格时,如何按行禁用特定字段? Kendo UI ASP.Net MVC 包装器的主要内容,如果未能解决你的问题,请参考以下文章
Kendo UI - 如何在编辑时使特定字段只读,同时在剑道网格中创建可编辑?