我有一个ExtJs组合框。它的商店使用JSON加载(使用下面的MyStore类)。我想将所有值加载到商店,然后使用组合文本字段中输入的文本进行过滤(最好使用typeAhead功能)。在ExtJs中本地过滤comboxes远程存储
问题是我想在客户端进行过滤(默认情况下,组合模式属性为'remote')。我不希望我的组合在每次输入内容时重新加载它的商店。 我该怎么做?
谢谢。
这里是我的店铺等级:
MyStore = Ext.extend(Ext.data.JsonStore, {
constructor: function(jsonUrl, storeId, id, description, isAutoLoad, cfg) {
cfg = cfg || {};
GenericStore.superclass.constructor.call(this, Ext.apply({
storeId: storeId,
root: 'result',
url: jsonUrl,
autoLoad: isAutoLoad,
fields: [
{
name: id
},
{
name: description
}
]
}, cfg));
}
});
而且连击:
xtype: 'combo',
fieldLabel: 'The Combo',
width: 150,
store: myStoreData,
valueField: 'id',
displayField: 'name',
minChars : 0,
editable : false,
itemId : 'my-combo'
是,组合调用这个方法在其doQuery方法。你的意思是我应该重写这个方法吗?如果是这样,怎么样?谢谢 – 2011-01-24 14:34:33
初始数据集是静态的吗?你*可以*输出这个json文件,可以用来填充你的本地数据存储。然后,您可以尝试使用mode:local选项....从那里您可以使用对组合框使用的存储的引用来执行filter()方法。请参阅Gajahlemu的代码...您尝试执行的操作有很多好的设置。 – 2011-01-25 23:02:06