我有一个带有一列的 jQGrid,我只想在添加新行时对其进行编辑。
我已经看到了当编辑和添加都发生在对话框中时如何执行此操作的示例,但是有没有办法通过内联编辑来执行此操作?
我试过在 beforeShowForm: 中使用 grid.setColProp(),但这不起作用(该列保持只读状态并且不存在于添加对话框中)。
基于对话框的列启用/禁用示例:
http://www.ok-soft-gmbh.com/jqGrid/CustomFormEdit.htm
最佳答案
因为您使用了我以前的回答(this 和 this)中的示例,所以我觉得我也应该回答您的问题。
在old example所有可以在添加或编辑对话框中修改的字段都具有属性 editable:true
。应仅在“添加”对话框中显示的字段将隐藏在 beforeShowForm 中事件句柄。同样,我们可以在调用 editRow 方法之前将某些字段临时切换为editable:false
,并立即重置回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;
}
}
直播可以看到here .
更新: Free jqGrid允许将 editable
定义为回调函数。参见 the wiki article .它允许使列在某些行中可编辑,而在其他行中保持不可编辑。
关于javascript - jQGrid,如何使列在添加对话框中可编辑但在(内联)编辑期间不可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307147/