javascript - 使用 filterBy() 应用过滤器时从 ExtJs 存储中清除过滤器的最快方法

标签 javascript extjs extjs4.1 extjs-stores

我正在使用 ExtJS 4.1。我正在使用商店的 clearFilter() 从商店中删除过滤器。我正在使用 filterBy 方法对商店应用过滤器。我正在过滤名称不是罗纳尔多的所有记录。

清除过滤器后,我加载了一个包含网格(附加到商店)的 View 。但是当我加载网格时,我仍然可以看到过滤器没有被清除。 该商店是本地商店。我没有在商店中应用任何分组。商店只使用一种型号。

myStore.filterBy(function (record) {
    if (record.get('Name') != 'Ronaldo') {
        return true;
    }
});

虽然所有这些工作正常,但是当我使用 clearFilter() 清除过滤器时,它需要一些时间。当使用 filterBy() 应用过滤器时,是否有任何更快\更好\正确的方法来清除商店上的过滤器?

最佳答案

当您使用 clearFilter() 时,使用 filterBy()filter() 或过滤器并没有什么区别在商店配置。

清除过滤器后会发生以下情况:

  1. 清除商店中的过滤器集合
  2. 过滤后的数据被存储在快照中的原始(未过滤)数据替换
  3. 商店触发“datachanged”和“refresh”事件

请注意,您可以使用 clearFilter(true) 抑制要触发的事件,如果您想在清除现有过滤器后再次过滤商店,这可能会很有用。

如果清除商店的过滤器执行缓慢,则可能与第 3 步触发的布局过程(在您的网格或您使用商店的任何东西上)有关。

另请参阅 docssource code .

关于javascript - 使用 filterBy() 应用过滤器时从 ExtJs 存储中清除过滤器的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19767817/

相关文章:

javascript - ExtJS 3.4 GridPanel 不显示在 FormPanel 内

animation - Ext js 4 动画风格

javascript - 如何允许通过应用程序脚本访问 importrange 函数?

javascript - React-router v4,URL 更改但组件不呈现

javascript - ng-view 不显示在 angularjs 中

extjs - 是否有基于 extjs 的日期时间选择器?

javascript - ASP.NET 设置用户后,从 JavaScript JSON 请求的 Web 服务 (asmx) 获取 Windows 身份验证的 User.Identity.Name

extjs - 如何在设置记录数据时屏蔽 Extjs 网格并在设置后取消屏蔽?

javascript - 在刚刚创建的窗口中为文本输入设置焦点

javascript - 单击时使用 Javascript 显示/隐藏表行