2013-09-06 2 views
0

У меня есть выпадающий список extjs, queryMode - remote. Я также хочу использовать функцию typeAhead. Но typeahead doenst работает в этом случае. Магазин перезагружает исходные данные даже после ввода некоторого текста в поле со списком.extjs: combobox typeahead не работает с querymode: remote

Вот мой код:

var queryStore = Ext.create('Ext.data.Store', { 
//autoLoad: true, 
model: 'UserQuery', 
proxy: { 
    type: 'ajax', 
    url: 'queryBuilder_getQueryList', 
    extraParams: { 
     tableId: this.title 
    }, 
    reader: { 
     type: 'json' 
    } 
}, 
listeners: { 
    load: function() { 
     var combo = Ext.getCmp('cmbQueryList'); 
     var lst = this.last(); 
     if (lst)combo.setValue(lst.data); 
    } 
} 

}); 


var queryCombo = new Ext.form.ComboBox({ 
    width: 200, 
    id: 'cmbQueryList', 
    store: queryStore, 
    valueField: 'queryID', 
    displayField: 'queryName', 
    typeAhead: true, 
    forceSelection: true, 
    emptyText: 'Select Query...', 
    queryMode: 'remote', 
    triggerAction: 'query', 
    selectOnFocus: true, 
    allowBlank: false, 
    editable: true 
}); 

Пожалуйста, подсказывают, как я могу получить машинописный и querymode пульт работать вместе.

ответ

0

этот код укупоривает меня. Я думаю, что ваше свойство автозагрузки свойства верно, поэтому, когда вы собираетесь выбрать combobox, он перейдет на сервер и перезагрузит данные. пожалуйста, удалите свойство автонагрузки магазина true. Тогда его работа.

new Ext.form.ComboBox({ 

    fieldLabel:'Apps', 
    displayField: 'name', 
    valueField: 'id', 
    typeAhead: true, 
    listWidth : 345, 
    store: myStore(), 
    forceSelection: true, 
    triggerAction: 'all', 
    mode:'remote', 
    maxLength: 50, 
    editable: false, 
    anchor : '90%', 
    selectOnFocus:true 

}), 
+0

Я установил для свойства autoLoad хранилища значение false. Все равно никаких изменений. Каждый раз, когда я ввожу текст в поле со списком, хранилище перезагружается, а combobox получает сброс (текст вводится путем очистки). – DarkKnightFan

+0

добавил мой магазин в исходный вопрос – DarkKnightFan

+0

btw .. как у вас могут быть оба типа: Ahead: true и editable: false' !!! – DarkKnightFan

0

Этот код работал на меня. Мы должны указать как mode, так и queryMode на local.

var queryCombo = new Ext.form.ComboBox({ 
    width: 200, 
    id: 'cmbQueryList', 
    store: queryStore, 
    valueField: 'queryID', 
    displayField: 'queryName', 
    emptyText: 'Select Query...', 
    queryMode: 'local', 
    mode: 'local' 
}); 
Смежные вопросы