我有一个简单的textfiled
用于在我的网格中搜索,方法是获取插入的值并将过滤器添加到商店中,如下所示:
instructionSearchField: function(field, e) {
if (e.getKey() == e.ENTER) {
var searchTxt = this.getValue();
this.recordsStore = Ext.data.StoreManager.lookup('Instructions');
this.recordsStore.clearFilter(true);
this.recordsStore.filter({
filterFn: function(item) {
return item.get('title').toLowerCase().indexOf(searchTxt.toLowerCase()) != -1;
}
});
this.recordsStore.load();
}
},
因此用户可以根据需要进行连接 - 它可以正常工作。问题是,在某些时候,我想要返回网格状态,就像过滤/搜索之前一样。从服务器加载它并不是那么容易,所以我想在ExtJS4中是否有一种方法可以返回商店的开始状态,当上面的本地过滤器被多次使用时?对我来说简单的方法就是返回商店的基本状态,然后加载它,但我在文档中没有发现这样的东西 - 有没有办法做到这一点?
由于
Leron
答案 0 :(得分:1)
如果您不使用远程过滤(如在服务器中过滤记录并仅返回匹配集),则在应用过滤器后无需执行load()
。这是基本的工作流程:
store.load()
- 之后,您的本地副本包含数据库中的所有记录store.filter(...)
- 您的商店仍然拥有内存中的所有记录,但您只能访问与您的过滤器匹配的记录store.clearFilter()
- 您再次存储会显示所有记录,您可以再次应用不同的过滤器(请注意load()
只执行一次操作)