Więc mam kombobox, który przeładuje swój sklep po rozszerzeniu. Jestem w stanie zaktualizować sklep, ale nie mogę wydawać się kombobox, aby wyświetlić nowe informacje w sklepie. Wciąż pokazuje stare informacje. Użyłem prawie każdej metody i oszukałem przez wiele godzin. Jestem również zmuszony do użycia EXTJS 3.4.

Ogólna idea mojego Kodeksu:

codeFilterCombo = new Ext.form.ComboBox ({
    id: 'filterByFlagField',
    allowBlank: true,
    editable: false,
    lazyRender: true,
    width: 220,
    name: 'flagFilterCombo',
    displayField: 'msg',
    valueField: 'icon',
    hiddenValue: 'icon',
    hiddenId:'FlagFilterHidden',
    hiddenName: 'FlagFilter',
    triggerAction: 'all',
    mode: 'local',
    tpl: resultTpl,
    listeners: {
        expand: function() {
            this.store.removeAll();
            var data = getAvailableFlags();
            this.store.loadData(data);
            this.show();
        }
    }        
});
1
Bill Garrison 10 grudzień 2013, 00:06

2 odpowiedzi

Najlepsza odpowiedź

Naprawdę stare pytanie, ale może nadal pomoże komuś. Myślę, że zbliżasz się do tego złego. Jeśli chcesz, aby Twój sklep był przeładowywany za każdym razem, gdy kombobox zostanie otwarty, masz dołączyć wyściółkę.

Z dokumentacji:

var combo = new Ext.form.ComboBox({
    ...
    mode: 'remote',
    ...
    listeners: {
        // delete the previous query in the beforequery event or set
        // combo.lastQuery = null (this will reload the store the next time     it expands)
        beforequery: function(qe){
            delete qe.combo.lastQuery;
        }
    }
});
2
foddex 9 listopad 2017, 09:17

Próbowałbym zmienić tryb: lokalny na pilot.

-1
code4jhon 10 grudzień 2013, 03:04