如何在gridview中跟踪是不是在extjs中应用了过滤器?
Posted
技术标签:
【中文标题】如何在gridview中跟踪是不是在extjs中应用了过滤器?【英文标题】:how to track in gridview whether filter is applied or not in extjs?如何在gridview中跟踪是否在extjs中应用了过滤器? 【发布时间】:2012-12-06 07:42:48 【问题描述】:每当在该列中应用过滤器时,我的任务是在 extjs 网格列标题上放置一个图像。清除过滤器后,从网格列标题中删除图像。
如何在 extjs 3 中实现这一点?
【问题讨论】:
我在这里回答了一个类似的问题。 ***.com/questions/39209855/… 【参考方案1】:在 ExtJS 3.4 中,当过滤器在列上处于活动状态时,.ux-filtered-column
类将添加到标题单元格中。最简单的方法是为这个类添加自定义样式。
【讨论】:
【参考方案2】:GridView 引用了它所使用的网格。因此,您可以使用this.grid.store.isFiltered()
来检查商店是否被过滤。
您可能希望在绑定到网格存储的datachanged
事件的侦听器函数中执行此类检查:
initComponent: function()
...
this.grid.store.on('datachanged', this.yourDesiredFunction, this);
...
yourDesiredFunction: function(store)
if (store.isFiltered())
// do your stuff
【讨论】:
但是我如何为哪些列应用过滤器? 这是答案与问题无关。 @JackAss 获取专栏的正确方法是this.grid.filters.getMenuFilter()
。我知道它真的很晚,但我之所以写,是因为如果有人将来使用他们会正确使用。【参考方案3】:
.ux-filtered-column 类的自定义样式效果很好。 但是,如果 .ux-filtered-column 是分组标题网格,则不会将其添加到标题单元格中。
【讨论】:
【参考方案4】:我遇到了同样的问题。.ux-filtered-column 无效。但是我添加了背景图片,终于奏效了。
【讨论】:
以上是关于如何在gridview中跟踪是不是在extjs中应用了过滤器?的主要内容,如果未能解决你的问题,请参考以下文章