Establecer un valor predeterminado para un ComboBox usando Json en ExtJS 3.4

0

Estoy tratando de establecer un valor predeterminado en un ComboBox en ExtJS 3.4. He intentado establecerlo 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 reproducción posterior, pero aún no he logrado que se complete. El objetivo es conseguir que el cuadro seleccione realmente el valor y rellene el cuadro con los datos de Json, de modo que el usuario pueda seleccionar entre ComboBoxes 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!

0

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

var hatComboStore = new Ext.data.JsonStore({
    fields: [
        'BIN_ID',
        'BIN_DESC'
    ],
    data: [{
        BIN_ID: 'a',
        BIN_DESC: 'aaa'
    }, {
        BIN_ID: 'b',
        BIN_DESC: 'bbb'
    }, {
        BIN_ID: 'Standard',
        BIN_DESC: 'StandardStandardStandard'
    }]
});

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',
    mode: 'local',
    msgTarget: 'side',
    name: 'hatDesc',
    store: hatComboStore,
    submitValue: true,
    triggerAction: 'all',
    valueField: 'BIN_ID',
    value: 'Standard'
});

new Ext.form.FormPanel({
    items: hatCombo,
    renderTo: Ext.getBody()
});
-1

ver ejemplo de configuración del 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

2
  • Esto me parece HTML, no ExtJS.
    srk
    18 oct a las 14:12
  • lo siento, no vi correctamente, he editado mi respuesta, por favor, actualícela hace 2 días