javascript - JQGrid:根据内容动态将单元格设置为不可编辑

标签 javascript jquery jqgrid

我在将某些单元格(使用 cellEdit: true)设置为不可编辑时遇到了一些问题,即使该列设置为可编辑。

我试过很多方法,比如 beforeEditCell、formatters 等。似乎都没有用。

我最接近的方法是为我希望可编辑的列设置格式化程序,然后使用 setCell 设置“不可编辑单元格”类(下面的代码段)。第一次单击该单元格时,不幸的是它进入了编辑模式,但如果您单击其他地方并尝试重新编辑该单元格,它就成功地不可编辑了。

我也尝试过使用相同的片段,但在 beforeEditCell 内部,它成功地阻止了单元格的编辑,但又“卡住”了网格。您不能再选择任何其他单元格。

function noEditFormatter(cellValue, options, rowObject) {
    if (cellValue == 'test')
        jQuery("#grid").jqGrid('setCell', options.rowId, 'ColName', '', 'not-editable-cell');
    return cellValue;
}

如有任何帮助,我们将不胜感激。

最佳答案

使用思路setCell将类“not-editable-cell”添加到应该不可编辑的单元格的方法是正确的。你选择了错误的地方来做这件事。在自定义格式化程序内部,直到最后才可以构建网格。我建议你使用 loadCompletegridComplete检查当前页面的网格包含并将某些单元格标记为不可编辑。

我准备了an example这证明了这一点。就像在您的示例中一样,所有具有“测试”文本的单元格都被标记为不可编辑。在这种情况下,您可以检查一个单元格并将另一个单元格标记为不可编辑。

关于javascript - JQGrid:根据内容动态将单元格设置为不可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4718742/

相关文章:

javascript - 使用 selenium 填充和操作 jqGrid 的搜索小部件似乎不会触发 DOM 表单事件

jquery - 在无表 CSS 布局中实现 jqGrid

php - 使用javascript或jquery按下按钮时在文本区域中插入图像?

javascript - 选择未包含在特定元素中的所有元素

javascript - 我在 JavaScript 和 jquery 上使用游戏角色代码时遇到问题

javascript - 如何通过html更改fullcalendar io的一个字段?

jquery - jqGrid - 使所有列不可排序?

javascript - http请求文件头

javascript - 从 HTML 调用 Node 请求

php - 关于如何使用 php 和 jQuery 创建测验的提示和建议