Как сбросить все фильтры в сетках Extjs?
как сбросить фильтры ExtJS в моих сетках. Более конкретно, как мне получить заголовок, чтобы выполнить изменения в фильтрации.
ie. Это прекрасно работает :
grid.store.clearFilter();
но рендеринг заголовка все неправильно. Мне нужно попасть во все объекты меню и снять флажки.
Я теряюсь. Я уверен, что это дает мне filterItems :
var filterItems = grid.filters.filters.items;
и из каждого из этих элементов фильтра, я могу добраться до меню как Итак:
var menuItems = filter.menu.items;
но это все, что я могу получить. Я ожидаю какой-то объект checkbox внутри пунктов меню, а затем я могу снять этот флажок, и, надеюсь, рендеринг заголовка затем изменится.
обновление :
теперь у меня есть этот код. Фильтр хранилища сетки очищен. Затем я получаю filterItems от решетки.фильтры.фильтры.предметы и повторите их. Затем я вызываю функцию в каждом из меню предметы.
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);
});
}
флажки действительно вызываются, но все равно ничего не происходит : (
2 ответов
попробуйте этот код:
grid.filters.clearFilters();
Это должно заботиться как о сетке, так и о ее базовом хранилище.
когда вы
grid.store.clearFilter();
он может очистить только фильтры в магазине, но вид сетки не обновляется с этим вызовом. Следовательно, чтобы автоматически обрабатывать его как для вида сетки, так и для магазина сетки, просто используйте
grid.filters.clearFilters();
надеюсь, что это помогает!
Ура!
ваше обновление помогает мне, но вы забываете случай, когда у вас есть ввод текста вместо флажка.
Итак, это мое добавление вашего решения:
grid.filters.clearFilters();
var filterItems = grid.filters.filters.items;
for (var i = 0; i<filterItems.length; i++){
var filter = filterItems[i];
filter.menu.items.each(function(element) {
if (element.setChecked) {
element.setChecked(false, true);
}
if(typeof element.getValue !== "undefined" && element.getValue() !== "") {
element.setValue("");
}
});
}