如何在网格中重置 ExtJS 过滤器。更具体地说,我如何获取标题以兑现对过滤的更改。
IE。这工作正常:
grid.store.clearFilter();
但是标题渲染都是错误的。我需要进入所有菜单对象并取消选中复选框。
我越来越迷失了。我很确定这给了我 filterItems :
var filterItems = grid.filters.filters.items;
从这些过滤器项中的每一个,我都可以访问菜单项,如下所示:
var menuItems = filter.menu.items;
但这是我所能得到的。我期待菜单项内有某种复选框对象,然后我可以取消选中该复选框,希望标题呈现会发生变化。
更新:
我现在有这个代码。网格存储已清除其过滤器。接下来我从 获取 filterItems grid.filters.filters.items 并迭代它们。然后我在每个菜单项上调用一个函数。
grid.store.clearFilter();
var filterItems = grid.filters.filters.items;
for (var i = 0; i<filterItems.length; i++){
var filter = filterItems[i];
filter.menu.items.each(function(checkbox) {
if (checkbox.setChecked)
checkbox.setChecked(false, true);
});
}
复选框确实被调用,但仍然没有发生任何事情:(
最佳答案
试试这个代码:
grid.filters.clearFilters();
这应该兼顾网格及其底层存储。
当你做
grid.store.clearFilter();
它只能清除商店上的过滤器,但网格的 View 不会随着该调用而更新。因此,要为网格的 View 和网格的存储自动处理它,只需使用
grid.filters.clearFilters();
希望能帮助到你!
干杯!
关于extjs - 如何重置 Extjs Grids 中的所有过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24614012/