EXTJS 4.1 如何在不重新加载 TreeStore 的情况下删除过滤器

Posted

技术标签:

【中文标题】EXTJS 4.1 如何在不重新加载 TreeStore 的情况下删除过滤器【英文标题】:EXTJS 4.1 how to remove filter without reloading of TreeStore 【发布时间】:2012-07-27 15:36:21 【问题描述】:

我有一个 TreeStore,其中填充了来自 Json 的数据。 我正在对其应用过滤器。

if ( !filter.filterFn(node) ) node.remove();

第一次搜索尝试一切正常,但在第二次尝试中,并非所有数据都用于搜索。为了使用所有数据,我需要为存储执行 .load() 。 但在这种情况下,将发送对服务器的请求并应用过滤器。 有没有办法实现这种行为?

【问题讨论】:

【参考方案1】:

我不确定我是否完全遵循您的问题,但我认为您想在应用新过滤器之前删除较早的过滤器。

您可以在调用之前添加一行以添加过滤器。

类似这样的:

yourTreeStore.filters.clear();

(其中yourTreeStore 是对您要添加过滤器的Ext.data.TreeStore 的引用)

【讨论】:

好吧,我不想使用对服务器的请求重新加载以重新加载树。有什么方法可以隐藏/显示节点而不删除它?

以上是关于EXTJS 4.1 如何在不重新加载 TreeStore 的情况下删除过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Extjs 4.1 - 如何等待组合中的所有商店被加载

Extjs 4.1 - 如何将数据从商店加载到另一个商店

如何在不重新加载根目录的情况下更新树形面板的根目录?

在不使用 Ajax 请求的情况下使用 ExtJS 4.1 将文件下载为 CSV 的替代方法?

重新配置 extjs 4.1 中未刷新商店

extjs 4.1 treestore 延迟加载:q 是,它分支吗?