jQGrid,如何在添加对话框中编辑列,但不在(内联)编辑期间

我有一个jQGrid的列,我只想要添加一个新的行时可编辑。

我已经看到如何做到这一点的编辑和添加都是在对话框中发生的例子,但有没有办法做到这一点,在线编辑?

我曾尝试在beforeShowForm中使用grid.setColProp(),但这不起作用(该列保持只读状态,不存在于添加对话框中)。

基于对话框的列启用/禁用示例:
http://www.ok-soft-gmbh.com/jqGrid/CustomFormEdit.htm

因为你用我以前的答案( 这个和这个 )的例子,我觉得我也应该回答你的问题。

在旧的例子中 ,可以在“添加”或“编辑”对话框中修改的所有字段的属性均为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; } } 

你可以看到这住在这里 。

更新: 免费jqGrid允许定义editable为callback函数。 请参阅wiki文章 。 它允许在某些行中使列可编辑,并保持其他行不可编辑。