Come faccio a ripristinare i miei filtri ExtJS nelle mie griglie. Più specificamente, come ottengo l'intestazione per onorare le modifiche al filtro.Come faccio a ripristinare tutti i filtri nelle griglie Extjs?
ie. Funziona bene:
grid.store.clearFilter();
Ma il rendering dell'intestazione è tutto sbagliato. Devo entrare in tutti gli oggetti del menu e deselezionare le caselle di controllo.
Mi sto quasi perdendo. Sono abbastanza sicuro che questo mi dà i filterItems:
var filterItems = grid.filters.filters.items;
E da ciascuno di questi elementi filtranti, posso arrivare a voci di menu in questo modo:
var menuItems = filter.menu.items;
ma questo è quanto posso ottenere. Mi aspetto un qualche tipo di oggetto checkbox all'interno delle voci di menu, quindi posso deselezionare la casella di controllo, e spero che il rendering dell'intestazione cambierà.
UPDATE:
ora ho questo codice. Il grid store ha cancellato il filtro. Successivamente ottengo i filtri da grid.filters.filters.items e iterato su di essi. Quindi chiamo una funzione su ciascuna voce del menu.
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);
});
}
Le caselle di controllo vedono, ma ancora non accade nulla :(
grazie! perfezionare! –
Felice di essere di qualche aiuto! Saluti! –