0

我有一个 extjs 组合框,其queryMode设置为remote. 我也想要其中的typeAhead功能。但是在这种情况下,提前输入不起作用。即使在组合框中键入了一些文本,商店也会重新加载到原始数据。

这是我的代码:

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
 });

请建议我如何让 typeAhead 和 querymode remote 一起工作。

4

2 回答 2

0

This following code worked at me. We have to specific the both mode and queryMode to local.

var queryCombo = new Ext.form.ComboBox({
    width: 200,
    id: 'cmbQueryList',
    store: queryStore,
    valueField: 'queryID',
    displayField: 'queryName',
    emptyText: 'Select Query...',
    queryMode: 'local',
    mode: 'local'
 });
于 2015-03-13T08:43:20.097 回答
0

这段代码对我来说是软木塞。我猜你的商店属性自动加载是真的,所以当你要选择组合框时,它会转到服务器并重新加载数据。请删除 store auto load 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

 }),
于 2013-09-06T08:58:01.277 回答