Extjs网格面板过滤器 - 仅在一列中清除过滤器

时间:2013-07-17 21:31:28

标签: extjs extjs4.2

这个问题(EXTjs gridfilter: How to clearfilter without reloading store?)显示了如何清除整个网格上的所有过滤器。

有没有办法只清除特定列中的过滤器?例如,如果我有一个包含列表过滤器的列,其中包含20个选项,并且我选择其中的8个,我想要一个取消选中所有这些选项的按钮,但保留我选择保留的任何其他过滤器。

此演示中的“尺寸”列是过滤效果的一个很好的示例:http://dev.sencha.com/deploy/ext-4.0.0/examples/grid-filtering/grid-filter-local.html

1 个答案:

答案 0 :(得分:3)

您可以使用过滤器的setActive方法执行此操作。

以下是如何获得对此过滤器的引用:

// FiltersFeature adds a filters property to the grid it is bound to
grid.filters.getFilter('size').setActive(false)

修改:如何取消选中所有框

var filter = grid.filters.getFilter('size');
filter.menu.items.each(function(checkbox) {
    // The second argument suppress the check event in order to prevent
    // unexpected behaviour, like the filter reenabling itself and trying
    // to update the store several times in a row
    checkbox.setChecked(false, true);
});