我正在使用ExtJS 4.1。我正在使用商店的clearFilter()
从商店中删除过滤器。我正在使用filterBy
方法将过滤器应用于商店。我正在过滤所有名字不是罗纳尔多的记录。
清除过滤器后,我加载一个包含网格的视图(附加到商店)。但是当我加载网格时,我仍然可以看到过滤器未被清除。 这家商店是当地商店。我没有在商店上应用任何分组。商店只使用一种型号。
myStore.filterBy(function (record) {
if (record.get('Name') != 'Ronaldo') {
return true;
}
});
虽然这一切都运行良好,但是当我使用clearFilter()
清除过滤器时,需要一些时间。使用filterBy()
应用过滤器时,是否有更快\更好\正确的方法来清除商店中的过滤器?
答案 0 :(得分:11)
当您使用clearFilter()
时,如果您使用filterBy()
或filter()
或在商店中配置了过滤器,则无效。
清除过滤器后会发生以下情况:
请注意,您可以使用clearFilter(true)
来禁止触发事件,如果您想在清除现有过滤器后再次过滤商店,则可能会有用。
如果清除商店的过滤器执行速度很慢,则可能与步骤3触发的布局过程(在您的网格上或您使用商店的任何内容)有关。
另请参阅docs或source code。
答案 1 :(得分:3)
继承人我最好的答案,清除filterBy函数:
myStore.filterBy(function (record) {
return true;
});
我刚刚做到了,希望它的帮助
答案 2 :(得分:0)
只需致电:
myStore.reload();
每当您想使用filterBy删除过滤器集时。