Quando si modifica la mia griglia, se faccio clic fuori dalla griglia, la casella che stavo modificando è ancora modificabile. Come faccio a ottenere la cella modificata per "completare" la modifica quando perde lo stato attivo?Slickgrid - Focalizzazione persa per terminare la modifica
risposta
Il seguente codice salverà la modifica corrente.
Slick.GlobalEditorLock.commitCurrentEdit();
È necessario posizionarlo all'interno di un gestore di eventi che si ritiene debba attivare il salvataggio. Ad esempio, se si sta utilizzando il campione di editor di testo plug-in, credo che una classe editor-text
CSS viene aggiunto al campo di inserimento che si crea quando si sta modificando una cella in modo qualcosa come questo dovrebbe funzionare:
$('#myGrid').on('blur', 'input.editor-text', function() {
Slick.GlobalEditorLock.commitCurrentEdit();
});
I scoperto che avevo bisogno di avvolgere gestore di CLAV in un timeout:
$("#myGrid").on('blur', 'input.editor-text', function() {
window.setTimeout(function() {
if (Slick.GlobalEditorLock.isActive())
Slick.GlobalEditorLock.commitCurrentEdit();
});
});
da evitare errori come:
Uncaught NotFoundError: An attempt was made to reference a Node in a context where it does not exist.
quando si utilizza la tastiera per spostarsi. Presumibilmente, il nuovo gestore di sfocatura si attiva prima che SlickGrid possa eseguire la propria gestione e questo causa problemi.
Sfortunatamente, probabilmente a causa delle differenze nell'elaborazione degli eventi, la versione di Grame interrompe la navigazione della tastiera in chrome. Per risolvere questo problema, ho aggiunto un altro controllo a commettere solo la modifica, se l'elemento di recente messo a fuoco non è un altro elemento editore all'interno della griglia (come il risultato di navigazione da tastiera):
$('#grid').on('blur.editorFocusLost', 'input.editor-text', function() {
window.setTimeout(function() {
var focusedEditor = $("#grid :focus");
if (focusedEditor.length == 0 && Slick.GlobalEditorLock.isActive()) {
Slick.GlobalEditorLock.commitCurrentEdit();
}
});
});
Questo sembra funzionare a corrente versioni di firefox, chrome e ie.
- 1. Xcode persa per iPhone
- 2. Funzioni SlickGrid per l'esportazione CSV?
- 3. TextMate fare clic per terminare la riga
- 4. Attendere la chiamata AJAX (POST) per terminare
- 5. Impostare cursore alla fine dopo focalizzazione CKEditor
- 6. Storia TFS persa
- 7. Java ha rilevato la connessione persa
- 8. Ordinamento di Slickgrid per più colonne?
- 9. Chiamare l'ordinamento su slickgrid
- 10. Come terminare il ciclo infinito di "modifica" in VBA
- 11. Seleziona editor SlickGrid
- 12. Ricevitore broadcast per chiamata persa in Android
- 13. Intestazioni colonna SlickGrid
- 14. SlickGrid e selezione testo
- 15. È meglio reimpostare la password o inviare la password persa?
- 16. SlickGrid con prima colonna fissa
- 17. Come posso dire a un QTableWidget di terminare la modifica di una cella?
- 18. Salvataggio delle modifiche in SlickGrid
- 19. ListView non scorre per terminare, quando la tastiera usa
- 20. Può un controllo casella combinata ospitato nella cella DataGridView chiedere di terminare la modifica?
- 21. multiple slickGrid in jQuery tabs
- 22. come terminare la mia chiamata in uscita.
- 23. Come terminare la sessione nella primavera 3
- 24. Come cambiare l'effetto di focalizzazione su un NSTextField su OSX
- 25. Applica la formattazione slickgrid a una riga specifica
- 26. Rileva se la connessione Firebase è persa/recuperata
- 27. Qual è l'approccio consigliato per lo stile di SlickGrid?
- 28. HorizontalScrollView, auto-scroll per terminare con l'animazione
- 29. Python non aspetta MATLAB per terminare
- 30. Connessione persa al server MySQL durante la query
Potrei mancare qualcosa qui. In teoria questo funziona - perché se lo aggiungo nella console di Firebug e poi ottengo lo stato attivo e lo smetto di focalizzarlo, funziona una volta. Ma nel codice, anche nel documento. Già, non funziona: \ – sunzyflower
Errore mio, quell'esempio sfocato non funzionerebbe perché i campi di input sono stati aggiunti dinamicamente. Dovrai invece associare l'evento usando "on". Ho aggiornato l'esempio, provalo. – clav
Sto ottenendo il seguente errore: TypeError:.. JQuery (...) su non è una funzione [rompere su questo errore] \t jQuery ('# myGrid') il ('sfocatura', 'ingresso .editor-text ', function() { – sunzyflower