Si tengo una selección de cuadro combinado respaldado por la tienda que desencadena un evento en ExtJS 4, ¿cómo hago para obtener el objeto completo que representa esa selección?Obtención de objeto de modelo completo de un cuadro combinado en ExtJs?
13
A
Respuesta
19
En general, se puede utilizar el método findRecordByValue
en el cuadro combinado:
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
Lo descubrí casi inmediatamente después de publicar mi pregunta.
Mi problema era que era vinculante para el evento incorrecto, estaba usando 'cambio' en lugar de 'selección'.
El evento de selección le da el registro con el objeto completo que contiene.
+5
Tenga en cuenta que el evento 'select' sólo se activa si el valor cambia porque el usuario hace clic en una opción en la lista. Si 'setValue' se llama programáticamente, solo' change' se disparará. –
Cuestiones relacionadas
- 1. valor de preseleccionado en el cuadro combinado en extjs
- 2. ¿Cómo obtengo un cuadro combinado extjs para que funcione como un cuadro normal de selección html?
- 3. ExtJs 4 cuadro combinado con casillas de verificación
- 4. cursor escribir de cuadro combinado
- 5. preseleccionando el valor del menú desplegable (cuadro combinado) en extjs?
- 6. cómo obtener el valor en el cuadro combinado extjs?
- 7. EXTJS 4 render HTML de un valor seleccionado en un cuadro combinado
- 8. combinado cuadro de autocompletar
- 9. Lista desplegable de cuadro combinado
- 10. valor seleccionado de un cuadro combinado
- 11. ¿Mejor cuadro combinado de Javascript?
- 12. Cómo cambiar datos del almacén de cuadro combinado en ExtJS 4.1
- 13. Obtener el texto seleccionado de un cuadro combinado usando jQuery, por nombre del cuadro combinado?
- 14. Desactivar elementos particulares en un cuadro combinado
- 15. Aspecto del cuadro combinado
- 16. Agregar enum al cuadro combinado
- 17. ExtJS: modelo de visualización en Ext.grid.property.Grid
- 18. cuadro combinado de la unión a otro cuadro combinado en WPF
- 19. Cómo centrar elementos en un cuadro combinado de Java
- 20. Enlazar un cuadro combinado de formulario en Access 2007
- 21. ¿Cómo obtener la cantidad de elementos en un cuadro combinado?
- 22. Vinculación de cuadro combinado (jQuery preferiblemente)
- 23. Obtención de un estado de objeto
- 24. Cómo capturar la selección de cuadro combinado en Caliburn Micro?
- 25. Encuadernación convertida Enum a un cuadro combinado
- 26. Eventos del cuadro combinado VB6
- 27. caso cuadro combinado desplegable sensibles
- 28. WPF valor de cuadro combinado y visualización de texto
- 29. WPF: Enlace DisplayMemberPath en un cuadro combinado al elemento
- 30. Comportamiento extraño del control de cuadro combinado de Windows Forms
Interesante. Soy bastante nuevo en extJS, ¿cuál es la mejor práctica aquí? –
Buena pregunta. A riesgo de sonar cliché, depende de tu caso de uso. Creo que hay 2 cosas clave a tener en cuenta. Primero, el evento 'select' es un evento UI, mientras que el evento' change' es un evento de cambio de estado. En segundo lugar, un cuadro combinado * utiliza * su tienda para facilitar el cambio de su valor de campo subyacente a través de la interfaz de usuario. Como resultado, el evento 'select' * siempre * corresponde a un registro en la tienda subyacente, pero el evento' change' no. –
Hmm Honestamente, no sé qué respuesta marcar como correcta, porque, como señaló, la respuesta correcta depende del caso de uso. –