Ich benutze ExtJS 4.2.1 und habe eine ziemlich einfache Einrichtung: JSON-basierten Speicher und ein Gridpanel, das aus diesem Speicher liest. Das Klick-Ereignis einer Add-Schaltfläche ruft die folgende Funktion auf.Toggle-Zelle-Editor nach Datensatz programmgesteuert zum Gitter in ExtJS hinzugefügt
Mein Ziel ist es, dem Raster eine leere Zeile hinzuzufügen und sofort mit der Bearbeitung des Ext.grid.plugin.CellEditing
Plugins zu beginnen, das auf dem Gridpanel aktiviert ist.
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);
};
Beim Debuggen wird der Index auf -1 gesetzt und das funktioniert nicht. Ich habe die Funktionalität von plugin.startEdit() mit (0, 0) getestet, um die erste Spalte der ersten Zeile zu bearbeiten. Ich habe versucht, die Bewegung die Auto-Edit-Logik, um verschiedene Event-Handler versuchen, es an der Arbeit:
- Die
add
Veranstaltung speichern entlassen, nachdem das Add und reflektierte den richtigen Index aber das Element wurde noch nicht im Gridpanel präsentiert für das Plugin, um es zu greifen. - Der
afterrender
Veranstaltung Gridpanel keinen Blitz nicht nach dem Add - Der
add
Veranstaltung Gridpanel gefeuert, sondern erst nach einem Doppelklick auf einer Zelle manuell zu bearbeiten. Es endete auch in einer Schleife mit sich selbst.
Ich bin mir nicht sicher, was ich an dieser Stelle noch versuchen sollte.
Awesome, die funktionierte. Vielen Dank! – anjunatl