我有一个带有列的 jQGrid,我只想在添加新行时对其进行编辑。
我已经看到了在对话框中进行编辑和添加时如何执行此操作的示例,但是有没有办法通过内联编辑来执行此操作?
我已经尝试在 beforeShowForm: 中使用 grid.setColProp() ,但这不起作用(该列保持只读状态并且不在添加对话框中)。
基于对话框的列启用/禁用示例:http :
//www.ok-soft-gmbh.com/jqGrid/CustomFormEdit.htm
我有一个带有列的 jQGrid,我只想在添加新行时对其进行编辑。
我已经看到了在对话框中进行编辑和添加时如何执行此操作的示例,但是有没有办法通过内联编辑来执行此操作?
我已经尝试在 beforeShowForm: 中使用 grid.setColProp() ,但这不起作用(该列保持只读状态并且不在添加对话框中)。
基于对话框的列启用/禁用示例:http :
//www.ok-soft-gmbh.com/jqGrid/CustomFormEdit.htm
因为您使用了我的旧答案(this和this)中的示例,所以我觉得我也应该回答您的问题。
在旧示例中,可以在“添加”或“编辑”对话框期间修改的所有字段都具有属性 editable:true。只应在“添加”对话框中显示的字段将隐藏在beforeShowForm事件句柄中。同理,我们可以临时将一些字段切换到editable:falseeditRow方法调用之前,并editable:true在调用之后立即重置回:
onSelectRow: function(id) {
if (id && id !== lastSel) {
grid.jqGrid('restoreRow',lastSel);
var cm = grid.jqGrid('getColProp','Name');
cm.editable = false;
grid.jqGrid('editRow', id, true, null, null, 'clientArray');
cm.editable = true;
lastSel = id;
}
}
你可以在这里看到这个。
更新: 免费 jqGrid允许定义editable为回调函数。请参阅维基文章。它允许使列在某些行中可编辑,而在其他行中不可编辑。