Schnellster Weg zum Löschen eines Filters aus dem ExtJs-Speicher, wenn der Filter mithilfe von filterBy () angewendet wird

8

Ich verwende ExtJS 4.1. Ich verwende die clearFilter() von Stores, um den Filter aus dem Store zu entfernen. Ich verwende einen Filter für das Geschäft, indem ich filterBy method verwende. Ich filtere alle Datensätze, deren Name nicht Ronaldo ist.

Nachdem ich den Filter gelöscht habe, lade ich eine Ansicht, die ein Gitter enthält (angehängt zum Speichern). Aber wenn ich das Gitter lade, kann ich immer noch sehen, dass der Filter nicht gelöscht ist. Der Laden ist Ladengeschäft. Ich habe keine Gruppierung auf den Laden angewendet. Store verwendet nur ein Modell.

%Vor%

Das funktioniert zwar gut, aber wenn ich den Filter mit clearFilter() lösche, dauert es etwas. Gibt es einen schnelleren / besseren \ richtigen Weg, den Filter in einem Geschäft zu löschen, wenn der Filter angewendet wird, indem filterBy() ?

verwendet wird?     
SharpCoder 04.11.2013, 12:33
quelle

3 Antworten

11

Wenn Sie clearFilter() verwenden, macht es keinen Unterschied, ob Sie filterBy() oder filter() verwendet haben oder ob die Filter für den Speicher konfiguriert wurden.

Folgendes passiert, wenn Sie die Filter löschen:

  1. die Sammlung von Filtern im Geschäft ist gelöscht
  2. Die gefilterten Daten werden durch die ursprünglichen (ungefilterten) Daten ersetzt, die in einem Snapshot gespeichert wurden
  3. Die Ereignisse "datachanged" und "refresh" werden im Store ausgelöst

Beachten Sie, dass Sie die zu startenden Ereignisse unterdrücken können, indem Sie clearFilter(true) verwenden. Dies kann nützlich sein, wenn Sie den Speicher nach dem Löschen der vorhandenen Filter erneut filtern möchten.

Wenn das Löschen der Filter des Geschäfts nur langsam abläuft, hängt es wahrscheinlich mit dem Layout-Prozess (in Ihrem Raster oder was auch immer Sie den Laden verwenden) zusammen, das durch Schritt 3 ausgelöst wird.

Siehe auch die Dokumentation oder der Quellcode .

    
matt 04.11.2013 13:32
quelle
3

ist meine beste Antwort, um die filterBy Funktion zu löschen:

%Vor%

Ich habe es gerade getan, hoffe es hilft

    
neodimasz 30.08.2014 04:14
quelle
0

Rufen Sie einfach ein:

%Vor%

, wenn Sie einen Filtersatz mithilfe von filterBy entfernen möchten.

    
Shahbaz 20.02.2014 12:40
quelle