如何在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中应用了过滤器?的主要内容,如果未能解决你的问题,请参考以下文章

在Microsoft Edge中应如何进行防跟踪设置?

ExtJS 3.4.0 GridView body 和 header 有不同的宽度

extjs如何获取Grid中某一行某一列的值

ExtJs - 通过 Gridpanel 的索引获取行

Extjs mvc 将记录添加到网格面板

如何检查是不是在 Selenium 中选中了在 ExtJs 中实现为按钮的复选框? [复制]