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

Extjs网格面板过滤器-仅在一列中清除过滤器,extjs,extjs4.2,Extjs,Extjs4.2,这个问题()显示了如何清除整个网格上的所有过滤器 是否有办法仅清除特定列中的筛选器?例如,如果我有一个包含20个选项的列表过滤器的列,并且我选择了其中的8个选项,我希望有一个按钮可以取消选中所有选项,但保留我选择的任何其他过滤器 本演示中的“大小”列是一个很好的示例,说明了过滤的效果:您可以使用过滤器的方法进行过滤 下面是如何获取此筛选器的引用: // FiltersFeature adds a filters property to the grid it is bound to grid.f

这个问题()显示了如何清除整个网格上的所有过滤器

是否有办法仅清除特定列中的筛选器?例如,如果我有一个包含20个选项的列表过滤器的列,并且我选择了其中的8个选项,我希望有一个按钮可以取消选中所有选项,但保留我选择的任何其他过滤器

本演示中的“大小”列是一个很好的示例,说明了过滤的效果:

您可以使用过滤器的方法进行过滤

下面是如何获取此筛选器的引用:

// 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);
});

谢谢这很有效。您知道如何使选中的框实际显示为未选中。功能就在那里,只是没有显示在实际的框中。如果你要选择一个新的过滤器,你仍然必须取消选中所有的复选框。恐怕没有内置的选项。我已经添加了一些代码来向您展示如何在我的答案中完成它。太棒了!谢谢工作起来很有魅力!