ExtJs 4, Come prevenire xtype: 'combo' di collassare quando già selezionato oggetto cliccato?

StackOverflow https://stackoverflow.com/questions/5802795

Domanda

Ho ComboBox. Quando clicco sulla voce dalla lista espansa, ComboBox selezionare questa voce e collasso. Se clicco su elemento già selezionato anche crollare.

C'è un modo per "stop" ComboBox collasso voce quando l'utente seleziona già selezionata?

PS: per essere breve voglio ComboBox si comporti come TimeField da http://dev.sencha.com/deploy/ext-4.0.0/examples/themes/index.html

Aggiorna

Non ho bisogno di soluzioni che funzionano dosen't almeno a IE7 e IE8 ..

È stato utile?

Soluzione

Se si vuole che il comportamento:

Ext.form.field.ComboBox.override({
    onItemClick: Ext.emptyFn
});

Altri suggerimenti

var cb = new Ext.form.ComboBox({    
    // here is your local store
    mode: 'local',
    store: new Ext.data.SimpleStore({
        fields: ['id', 'label'],
        data: [
            ['1', 'One'],
            ['2', 'Two']
        ]
    }),    
    listeners: {
        'beforeselect': function (combo, record, index) {
            // prevent collapsing if the same value is selected
            if (record.data.label == combo.getRawValue()) return false;
        }
    }
});

Se è si 3.3 a che fare con, questo sembra funzionare:

Ext.form.ComboBox.override({
  onSelect : Ext.form.ComboBox.prototype.onSelect.createInterceptor(function(record) {
    return this.getValue() !== record.data[this.valueField || this.displayField];
  })
});

Testato su Chrome e IE8. Previene la funzione onSelect viene chiamata se il valore corrente corrisponde esattamente al valore che si sta cercando di impostare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top