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

Dav*_*vid 8 javascript jquery editing jqgrid

我有一个带有列的jQGrid,我只想在添加新行时进行编辑.

我已经看到了如何在对话框中进行编辑和添加时如何执行此操作的示例,但有没有办法通过内联编辑执行此操作?

我尝试在beforeShowForm:中使用grid.setColProp(),但这不起作用(列保持只读,并且在添加对话框中不存在).

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

Ole*_*leg 18

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

旧示例中,可以在"添加"或"编辑"对话框中修改的所有字段都具有属性 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到这个.

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