2012-09-21 28 views
3

我有一个ExtJs组合框。它的商店使用JSON加载(使用我的商店)。我想将所有值加载到商店,然后使用在组合文本字段中输入的文本对它们进行过滤。在ExtJs中筛选combox

我不希望我的组合在我输入内容时重新加载它的商店。我怎样才能做到这一点? 和其他的东西,然后我尝试从组合框首次从服务器重新加载数据时选择元素。 PS:我的商店中的侦听器,用于从服务器中选择第一个数据元素。 谢谢。

这里是我的店铺等级:

Ext.define('KP.store.account.street', { 
    extend: 'Ext.data.Store', 
    model: 'KP.model.account.combo', 
    autoLoad: true, 

    proxy: { 
     type: 'ajax', 

     api: { 

      read: '/account/combostreetdata' 
     }, 
     reader: { 
      type: 'json', 
      root: 'combolist', 
      successProperty: 'success', 
      totalProperty: 'total' 
     } 
    }, 

    listeners: { 
     'load': function (street_list) { 
      var street_combo = Ext.getCmp('street'); 
      street_combo.select(street_list.getAt(0)); 
     } 
    } 
}); 

我的观点:

{ 
    id: 'street', 
    xtype: 'combobox', 
    width: 700, 
    name: 'street', 
    editable: true, 
    mode: 'local', 
    typeAhead: true, 
    emptyText: '?????', 
    fieldLabel: '???', 
    labelWidth: 120, 
    size: 72, 
    x: 20, 
    y: 180, 

    displayField: 'string_value', 
    valueField: 'long_key', 
    store: street_list 
}, 

回答

0

你有一个组合框配置错误。

不是mode: 'local',而是queryMode: 'local',

我在连击使用这样一个领域:

queryMode: 'local', 
forceSelection: true, 

工作事先键入的内容细,预输入期间没有数据负载。

+0

谢谢,我的错误。但是你知道为什么然后我试着从combobox中选择元素,第一次是从服务器重新加载数据? –

+0

嗯。尝试将'proxy'配置选项放入模型中,并将其从商店中删除。 –