Se si dispone di una selezione di una combobox supportata da archivio che attiva un evento in ExtJS 4, come posso ottenere l'oggetto completo rappresentato da tale selezione?Come ottenere l'oggetto modello completo da una casella combinata in ExtJs?
13
A
risposta
19
In generale, è possibile utilizzare il metodo findRecordByValue
sulla casella combinata:
combobox.on('change', function(combobox, newValue, oldValue) {
// Get the old and the new records.
// NOTE: The underlying store is not guaranteed to
// contain an associated record.
var oldRecord = combobox.findRecordByValue(oldValue);
if (oldRecord) {
// Do something...
}
var newRecord = combobox.findRecordByValue(newValue);
if (newRecord) {
// Do something...
}
});
6
Capito subito dopo aver postato la mia domanda.
Il mio problema era che stavo legando all'evento sbagliato, stavo usando 'change' invece di 'selection'.
L'evento di selezione fornisce il record con l'intero oggetto in esso contenuto.
+5
essere consapevoli del fatto che l'evento 'select' sarà attivato solo se il valore cambia in quanto l'utente fa clic un'opzione sulla lista. Se 'setValue' è chiamato a livello di programmazione, solo' change' verrà attivato. –
Problemi correlati
- 1. Come faccio a ottenere una casella combinata extjs in modo che si comporti come una normale casella di selezione html?
- 2. Come ottenere il numero di elementi in una casella combinata?
- 3. ExtJS - Come mostrare casella combinata nella colonna Griglia
- 4. Come 'ottenere' la casella combinata WPF PART_EditableTextbox perché la casella combinata non viene evidenziata?
- 5. Come si cancella una casella combinata?
- 6. Come creare una casella combinata con supporto per il completamento automatico della ricerca di testo completo?
- 7. Svuotamento e ricarica di una casella combinata combinata
- 8. Come posso ottenere il valore di una colonna non associata in una casella combinata?
- 9. Come ottenere l'elemento selezionato di una casella combinata in una variabile stringa in C#
- 10. In pyqt, come posso aggiungere elementi in una casella combinata?
- 11. Casella combinata se istruzione
- 12. Come ridimensionare il menu a discesa di una casella combinata?
- 13. VBA Cancella selezioni di una casella combinata
- 14. Come digitare il testo in una casella combinata?
- 15. È possibile aggiungere una casella combinata come colonna in una casella di riepilogo in VBA?
- 16. compilazione di una casella combinata utilizzando C#
- 17. come associare una lista a una casella combinata? (WinForms)
- 18. Casella combinata per chiave esterna in DataGridView
- 19. Come posso aggiungere una casella combinata usando l'helper RoR?
- 20. Come inserire dati da mysql nella casella combinata?
- 21. Ottieni il testo selezionato di una casella combinata utilizzando jQuery, in base al nome della casella combinata?
- 22. Ricerca casella combinata come Ricerca Google
- 23. Come ottenere dati dal database SQL per archiviare in una casella combinata - C#
- 24. casella combinata in primavera web MVC
- 25. Casella combinata con casella di controllo in winform
- 26. Ottenere il vecchio indice selezionato nella casella combinata di Winform
- 27. Mvvm-Light Silverlight, utilizzando EventToCommand con una casella combinata
- 28. Modifica dei colori del bordo di una casella combinata WPF
- 29. Collegamento casella combinata (JQuery preferibilmente)
- 30. Tkinter - Come creare una casella combinata con completamento automatico
Interessante. Sono abbastanza nuovo per extJS, qual è la migliore pratica qui? –
Buona domanda. A rischio di sembrare cliché, dipende dal tuo caso d'uso. Penso che ci siano 2 cose chiave da tenere a mente. Innanzitutto, l'evento 'select' è un evento UI, mentre l'evento' change' è un evento di cambiamento di stato. In secondo luogo, una casella combinata * utilizza * il suo archivio per facilitare la modifica del valore del campo sottostante tramite l'interfaccia utente. Di conseguenza, l'evento 'select' * corrisponde * sempre a un record nel negozio sottostante, ma l'evento' change' no. –
Hmm Onestamente non so quale risposta sia corretta, perché, come hai sottolineato, la risposta giusta dipende dal caso d'uso. –