Yai*_*vet 2 javascript jquery jqgrid
在jqGrid中,我正在以内联编辑模式工作.
当用户尝试编辑一行(单击笔动作图标)时,我想阻止({editable: false})根据此行中另一个单元格的内容编辑特定的可编辑行的单元格.
grid.setColProp('myColumn',{editable:false});对我不好,因为这会禁用所有网格行中'myColumn'的编辑,我只想在当前编辑的行上应用它.
Ole*_*leg 10
属性的值editable对于所有行都是通用的,但该值仅由初始化内联编辑的editRow方法使用.因此,您可以动态地更改属性的值(如答案中所示).在每次调用之前设置正确的属性值非常重要.在答案中,您可以看到相应的代码示例和演示.editablesetColPropeditableeditRow
更新:如果你使用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;
}
Run Code Online (Sandbox Code Playgroud)
你会在这里找到相应的演示.仅当"tax"列中的值<= 20时,"note"列才可在演示中编辑:

如果你想有datatype: "json"或datatype: "xml"无的使用loadonce: true就应该更换呼叫getLocalRow到呼叫getRowData或getCell在上面的代码.
| 归档时间: |
|
| 查看次数: |
7355 次 |
| 最近记录: |