Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

401
Vistas
Establecer un valor predeterminado en un ComboBox usando Json en ExtJS 3.4

Estoy tratando de establecer un valor predeterminado en un ComboBox en ExtJS 3.4. He intentado establecer el value: 'Standard' en la configuración de ComboBox, pero eso solo coloca una cadena en el cuadro. Investigué un poco y traté de configurar la función de procesamiento posterior, pero aún no he conseguido que se complete. El objetivo es hacer que el cuadro seleccione realmente el valor y llene el cuadro con los datos de Json, de modo que el usuario pueda seleccionar entre los cuadros combinados posteriores.

 var hatComboStore = new Ext.data.JsonStore({ autoLoad: true, fields: [ 'BIN_ID', 'BIN_DESC' ], baseParams: { method: 'post' }, url: 'json_bin_hat.php' }); var hatCombo = new Ext.form.ComboBox({ allowBlank: false, autoSelect: true, displayField: 'BIN_DESC', emptyText: 'Select a hat...', fieldLabel: 'Hat', forceSelection: false, hiddenName: 'hatId', itemId: 'hatId', listEmptyText: 'No records found', listeners: { afterrender: function(combo, record, index) { var hat = combo.getValue(); binCombo.store.baseParams.hat = hat; }, select: function(combo, record, index) { var hat = combo.getValue(); binCombo.store.baseParams.hat = hat; }, focus: function(combo) { binCombo.clearValue(); } }, mode: 'remote', msgTarget: 'side', name: 'hatDesc', store: hatComboStore, submitValue: true, triggerAction: 'all', valueField: 'BIN_ID' });

¿Alguien tiene alguna idea? ¡Gracias por tu ayuda!

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Lo tengo para trabajar usando un método de anulación .

Básicamente, displayValue es lo que quería mostrar ( 'Standard' ) y el value es lo que quería ejecutar ( value: 1 ). Aparentemente, es un poco difícil trabajar con la tienda remota, por eso fue necesaria la anulación.

 var hatComboStore = new Ext.data.JsonStore({ autoLoad: true, fields: [ 'BIN_ID', 'BIN_DESC' ], baseParams: { method: 'post' }, url: 'json_bin_hat.php' }); var hatCombo = new Ext.form.ComboBox({ allowBlank: false, autoSelect: true, displayField: 'BIN_DESC', displayValue: 'Standard', emptyText: 'Select a hat...', fieldLabel: 'Hat', forceSelection: false, hiddenName: 'hatId', itemId: 'hatId', listEmptyText: 'No records found', listeners: { afterrender: function(combo, record, index) { var hat = combo.getValue(); binCombo.store.baseParams.hat = hat; }, select: function(combo, record, index) { var hat = combo.getValue(); binCombo.store.baseParams.hat = hat; }, focus: function(combo) { binCombo.clearValue(); } }, mode: 'remote', msgTarget: 'side', name: 'hatDesc', store: hatComboStore, submitValue: true, triggerAction: 'all', valueField: 'BIN_ID' value: 1 }); //Override method to default hatCombo value to 'Standard' while underlying value = 1 Ext.override(Ext.form.ComboBox, { initValue: Ext.form.ComboBox.prototype.initValue.createSequence(function() { if (this.mode == 'remote' && !!this.valueField && this.valueField != this.displayField && this.displayValue) { if (this.forceSelection) { this.lastSelectionText = this.displayValue; } this.setRawValue(this.displayValue); } }) });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Parece que la propuesta de value no funciona para las tiendas remotas. Probablemente el combo se renderice antes de que se cargue la tienda. Puede establecer el valor después de que se haya cargado la tienda.

Esto funciona para mí (probado como un violín ExtJS 3.4 ).

 var hatComboStore = new Ext.data.JsonStore({ autoLoad: true, fields: [ 'id', 'title' ], url: 'https://jsonplaceholder.typicode.com/todos' }); var hatCombo = new Ext.form.ComboBox({ fieldLabel: 'Hat', store: hatComboStore, displayField: 'title', valueField: 'id', mode: 'local', submitValue: true, triggerAction: 'all', // Apparently does not work with remote store. // value: '1' }); hatComboStore.on('load', () => hatCombo.setValue('1')); new Ext.form.FormPanel({ items: hatCombo, renderTo: Ext.getBody() });
about 4 years ago · Juan Pablo Isaza Denunciar

0

ver ejemplo de configuración de valor predeterminado:

 Combo config: { triggerAction: 'all', id: 'dir_id', fieldLabel: 'Direction', queryMode: 'local', editable: false, xtype: 'combo', store : dirValuesStore, displayField:'name', valueField:'id', value: 'all', width: 250, forceSelection:true }

fuente: valor predeterminado del cuadro combinado Extjs 4

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda