jQGrid, come rendere una colonna modificabile nella finestra di dialogo Aggiungi ma non durante le modifiche (in linea)

Ho un jQGrid con una colonna che voglio solo essere modificabile quando aggiungo una nuova riga.

Ho visto alcuni esempi su come eseguire questa operazione quando modifiche e aggiunte avvengono entrambi in una finestra di dialogo, ma esiste un modo per farlo con la modifica in linea?

Ho provato a utilizzare grid.setColProp () in beforeShowForm :, ma questo non funziona (la colonna rimane di sola lettura e non è presente nella finestra di dialogo aggiungi).

Esempio di abilitazione / disabilitazione della colonna basata sulla finestra di dialogo:
http://www.ok-soft-gmbh.com/jqGrid/CustomFormEdit.htm

Poiché tu usi l’esempio delle mie vecchie risposte ( questa e questa ), sento che dovrei rispondere anche alla tua domanda.

Nel vecchio esempio tutti i campi, che possono essere modificati durante la finestra di dialogo Aggiungi o Modifica, hanno proprietà editable:true . I campi che dovrebbero essere mostrati solo nella finestra di dialogo Aggiungi saranno resi nascosti all’interno dell’handle di evento beforeShowForm . Allo stesso modo, possiamo temporaneamente editable:false alcuni campi in editable:false before call del metodo editRow e ripristinare il editable:true immediatamente dopo la chiamata:

 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; } } 

Puoi vedere questo live qui .

AGGIORNAMENTO: Free jqGrid consente di definire editable come funzione di callback. Vedi l’articolo wiki . Permette di rendere la colonna modificabile in alcune righe e di non modificabile per altre righe.