javascript - 根据其他单元格的状态使剑道网格单元格可编辑或只读

标签 javascript kendo-ui kendo-grid

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

我的专栏如下所示:

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

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

我查看了剑道网格的配置文档,并且尝试了 columns.editable 函数,但如文档中所述:“当单元格/行<时执行的 JavaScript 函数strong>about 打开进行编辑。返回的结果将决定是否为该列创建编辑器。”

我可以使用此函数来确定单元格在打开之前是否应可编辑或只读,但我希望能够在单元格打开进行编辑和已计算复选框时更改它选中或取消选中。

最佳答案

尝试阻止 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

关于javascript - 根据其他单元格的状态使剑道网格单元格可编辑或只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46325763/

相关文章:

javascript - 正则表达式允许字母、数字和空格,但不允许连续两个空格

telerik - Kendo Grid - 没有数据时不会出现水平滚动条

javascript - 禁用特定列上的 kendogrid 过滤器

javascript - 无法加载带有 JSON 的数据表

javascript - AngularJS 数字输入忽略除数字之外的所有键

javascript - 只读表单中的所有字段

jquery - Kendo UI 网格十进制数列

javascript - Kendo UI Grid 扩展过滤器参数

html - Kendo UI Grid——将日期排序为字符串

javascript - 检查剑道网格中的详细信息行