这个问题(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
答案 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);
});