根据其他单元格的状态,使kendo网格单元格可编辑或只读

时间:2017-09-20 15:11:50

标签: javascript kendo-ui kendo-grid

我有一个带内联编辑的kendo网格。如果检查行中的另一个单元格,我希望能够使行中的一个单元格可编辑。如果没有检查,那么我希望该单元格是只读的。

我的列看起来像这样:

columns: [
    { field: "Title" }, // string
    { field: "Body" }, // string
    { field: "IsCalculated", template: "#= IsCalculated ? 'Yes' : 'No' #" }, // boolean
    { field: "Expression" } // string
]

如果选中了Calculated,那么我希望Expression可以编辑,否则,我希望它是只读的。

我查看了kendo网格的配置文档,并且我已经尝试了columns.editable函数,但正如文档中所解释的那样:“当单元格/行时执行的JavaScript函数将被打开以进行编辑。返回的结果将决定是否将创建该列的编辑器。“

我可以使用此函数来确定单元格在打开之前是可编辑还是只读,但我希望能够在单元格打开进行编辑时更改它,并选中Calculated复选框或未选中状态。

1 个答案:

答案 0 :(得分:0)

尝试使用edit阻止cancelRow()事件:

edit: function(e) {
    if (!e.model.IsCalculated &&
        $(e.container).find('input').attr("name") == "Expression") 
    {
        this.cancelRow();
    }
}

Demo

更新 - 更好的条件:

if (!e.model.IsCalculated &&
    $(e.container).find('input[name="Expression"]').length) // <---

Demo