2010-11-29 46 views
8

我有一個jQGrid的列,我只想在添加新行時可編輯。jQGrid,如何使添加對話框中可編輯列,但不在(內嵌)編輯

我見過如何做到這一點的例子,當編輯和添加都在對話框中發生,但有沒有辦法做到這一點與聯機編輯?

我試着在beforeShowForm中使用grid.setColProp():,但是這不起作用(列保持只讀狀態,不存在於添加對話框中)。基於對話框列

示例啓用/禁用:
http://www.ok-soft-gmbh.com/jqGrid/CustomFormEdit.htm

回答

18

因爲你從我的舊的答案(thisthis)我覺得我也應該回答你的問題使用的例子。

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

UPDATE:Free jqGrid允許將editable定義爲回調函數。見the wiki article。它允許在某些行中使列可編輯,併爲其他行保留不可編輯。

+0

傑出,感謝您的幫助奧列格! – David 2010-11-30 17:51:50

相關問題