extjs 6 combobox recarga valor mostrado

0

cuando la tienda se carga después de setValue () terminamos mostrando el valueField. Una vez que se carga la tienda y hacemos clic en el menú desplegable, se resalta el artículo correcto; pero el campo de entrada en sí no se actualiza con el valor de displayField.

¿Cómo actualizamos el elemento de entrada del cuadro combinado para reflejar el campo de visualización del elemento seleccionado?

1

Ponga su setValue()función de devolución de llamada de carga de la tienda. Supongamos que comboes un cuadro combinado, su código debería ser así.

combo.store.load({
    callback: function (rec) {
       combo.setValue(value);
    }
});
1
  • 1
    Casi. En mi caso, no controlo la carga de la tienda, por lo que incluso si puedo adjuntar un controlador de eventos cargado, no tendré el valor en ese controlador. En cambio, existe esta función privada updateValue () que actualiza el valor mostrado sin actualizar el valor subyacente
    herme 0
    13/09/19 a las 12:24
0

Recomendaría que antes de usar setValue () use la opción clearValue (). Esto elimina el valor subyacente que tenía antes el cuadro combinado. Pero, si está configurando el valor del cuadro combinado, la tienda aún no se ha cargado y es un cuadro combinado remoto, le recomendaría que primero agregue el registro a la tienda del cuadro combinado y luego establezca el valor en ese registro. Una vez que la tienda se cargue nuevamente, la tienda se borrará, pero aún tendrá su primer valor.

combobox.getStore().insert(0, {
   id: 1,
   name: 'displayField'
});
combobox.setValue(1); //if your valueField is id

Documentos para los métodos mencionados anteriormente: https://docs.sencha.com/extjs/6.6.0/classic/Ext.form.field.ComboBox.html https://docs.sencha.com/extjs/6.6.0/ classic / Ext.data.Store.html

1
  • Este también es un buen enfoque. Creé un complemento para el cuadro combinado que agrega la capacidad del valor establecido y su campo de visualización. Verifico el estado de carga antes de inyectar.
    herme 0
    16/10/19 a las 13:04