属性editable 的值对所有行都是通用的,但该值仅由初始化 内联编辑的editRow 方法使用。因此,您可以相对于setColProp 动态更改editable 属性的值(如the answer)。请务必在每次调用editRow之前设置editable 属性的正确值。在the answer可以看到对应的代码示例和demo。
更新:如果您使用formatter: "actions",那么您可以“继承”在onclick 处理程序中调用的$.fn.fmatter.rowactions。下面你可以看到相应代码的示例
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;
}
您将找到相应的演示here。仅当“税”列中的值
如果您在不使用loadonce: true 的情况下使用datatype: "json" 或datatype: "xml",则应将上述代码中的getLocalRow 调用替换为getRowData 或getCell 的调用。