在 jqGrid 中,我在 inline-edit 模式下工作。
当用户尝试编辑一行时(单击笔操作图标),我想阻止({editable: false}
)根据该行中另一个单元格的内容编辑特定可编辑行的单元格。
grid.setColProp('myColumn',{editable:false});
对我不利,因为这将禁用所有网格行中“myColumn”的编辑,我只想将它应用于当前编辑的行。
在 jqGrid 中,我在 inline-edit 模式下工作。
当用户尝试编辑一行时(单击笔操作图标),我想阻止({editable: false}
)根据该行中另一个单元格的内容编辑特定可编辑行的单元格。
grid.setColProp('myColumn',{editable:false});
对我不利,因为这将禁用所有网格行中“myColumn”的编辑,我只想将它应用于当前编辑的行。
该属性的值editable
对所有行都是通用的,但该值仅由初始化内联编辑的editRow
方法使用。因此,您可以相对于(如答案)动态更改属性的值。在每次调用. 在答案中,您可以看到相应的代码示例和演示。editable
setColProp
editable
editRow
更新:如果你使用formatter: "actions"
那么你可以“子类化”被$.fn.fmatter.rowactions
调用的onclick
处理程序。下面您可以看到相应代码的示例
var orgRowActions = $.fn.fmatter.rowactions;
$.fn.fmatter.rowactions = function (rid, gid, act, pos) {
var $grid = $("#" + $.jgrid.jqID(gid)),
rowData = $grid.jqGrid("getLocalRow", rid),
isNonEditable = false,
result;
// we can test any condition and change
// editable property of any column
if (act === "edit" && parseFloat(String(rowData.tax)) <= 20) {
$grid.jqGrid("setColProp", "note", {editable: false});
isNonEditable = true;
}
result = orgRowActions.call(this, rid, gid, act, pos);
if (isNonEditable) {
// reset the setting to original state
$grid.jqGrid("setColProp", "note", {editable: true});
}
return result;
}
您可以在此处找到相应的演示。仅当“税”列中的值 <= 20 时,“注释”列才可在演示中编辑:
如果您有datatype: "json"
或datatype: "xml"
没有使用,loadonce: true
您应该将调用替换为上述代码中getLocalRow
的调用getRowData
或。getCell