Sto utilizzando ExtJS 4.2.1 e ho un'impostazione abbastanza semplice: archivio basato su JSON e un gridpanel che legge da tale archivio. Un evento click del pulsante Aggiungi chiama la funzione seguente.Attiva/disattiva l'editor di celle dopo la registrazione programmaticamente aggiunta alla griglia in ExtJS
Il mio obiettivo è aggiungere una riga vuota alla griglia e iniziare immediatamente a modificarla utilizzando il plug-in Ext.grid.plugin.CellEditing
abilitato sul gridpanel.
var addNewRow = function() {
// start add logic
var row = {
'name': '',
'email': '',
'description': ''
};
store.add(row);
// start auto-edit logic
var index = store.indexOf(row); // -1
var grid = Ext.ComponentQuery.query('gridpanel[itemId=upperPane]')[0];
var plugin = grid.getPlugin('upperPaneEditor');
plugin.startEdit(index, 0);
};
Durante il debug di questo, l'indice è impostato su -1 e non funziona. Ho testato la funzionalità plugin.startEdit() con (0, 0) per modificare la prima colonna della prima riga e funziona correttamente. Ho provato a spostare la logica di auto-edit a vari gestori di eventi cercare di farlo funzionare:
- del negozio manifestazione
add
licenziato dopo l'add e riflessa l'indice corretto ma l'elemento non ero ancora presentare nel gridpanel per il plugin per afferrarlo. - evento del gridpanel
afterrender
non è scattato dopo l'add - evento del gridpanel
add
sparato, ma solo dopo un doppio clic su una cella manualmente per modificarlo. Inoltre è finito in un ciclo con se stesso.
Non sono sicuro di cos'altro provare a questo punto.
impressionante, che ha funzionato. Grazie! – anjunatl