ExtJs分组中的clearfilter后如何获取特定组的所有记录

Posted

技术标签:

【中文标题】ExtJs分组中的clearfilter后如何获取特定组的所有记录【英文标题】:How to Get All records of a particular Group after clearfilter in ExtJs grouping 【发布时间】:2013-09-26 14:07:33 【问题描述】:

我正在加载商店并在商店中过滤。所以所有过滤的数据都在每个组下。现在,当我在特定组上单击时,我想清除该特定组的过滤器,以便我可以获取该组下的所有记录。

默认值:使用 store.filter(somecondition) 对网格进行后渲染。所有组均已展开

想要折叠任何组,当我再次展开时,我想显示该组下的所有记录。

感谢您的帮助!!

【问题讨论】:

现在我尝试在商店中使用过滤器。在 GroupClick 上使用了 clearfilter。所以所有组都显示了所有记录然后再次应用基于 GroupName 和 Previous 过滤器的过滤器。但这不是最好的解决方案 一些示例代码会很有帮助。 【参考方案1】:

假设您可以将您的群组名称绑定到您商店的过滤器,您可以简单地监听 groupexpand 事件 (http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.grid.feature.Grouping-event-groupexpand) 并对您的商店采取行动,即

function onGroupExpand( view, node, group, eOpts ) 
    store.clearFilter(true);
    store.filter( newCondition without group );

【讨论】:

mystore.filterBy(function (record) if(record.get('id')>10) return record; );这是正确的方法吗? 来自文档:“将为此 Store 中的每个 Record 调用指定的函数。如果函数返回 true,则包含 Record,否则将被过滤掉。”所以:mystore.filterBy(function(record) if(record.get('id')>10) return true; ); 是正确的方法。

以上是关于ExtJs分组中的clearfilter后如何获取特定组的所有记录的主要内容,如果未能解决你的问题,请参考以下文章

如何在每个组 ExtJS 4 中过滤分组网格

EXTJS 网格分组扩展行中的奇怪行为 - 缺少 CSS?

DataTable clearFilter() 无法正常工作

如何将 EXTJS 4.2.1 网格行按多个关系分组?

如何删除EXTJS中特定行的汇总分组

加载商店后如何在网格中设置值? EXTJS3