Um Dinge, die ich arbeite, an einem Übersetzungsprogramm mit einem Datagrid zu arbeiten, das 3 Spalten hat: Übersetzungscode, Referenztext und Zieltext.Flex DataGrid verhindert, dass ein Filter automatisch angewendet wird
Die DataProvider-Eigenschaft des DataGrid ist an eine ArrayCollection-Instanz gebunden. Der Benutzer kann das Raster bearbeiten und bei einer erfolgreichen Bearbeitung wird die zugrunde liegende Sammlung mithilfe der Methode setItemAt() aktualisiert. Die Sammlung verfügt auch über eine Filterfunktion, um das Auffinden bestimmter Texte zu erleichtern.
Wenn der Benutzer auf die Schaltfläche "Filter anwenden" klickt, wird die Filterfunktion aktualisiert. Das funktioniert gut. Das Problem, das ich habe, ist, dass Zeilen ausgeblendet werden, sobald sich das zugrunde liegende Sammlungselement auf eine Weise ändert, die nicht mit dem Filter übereinstimmt. Die Zeile ist sofort ausgeblendet, was nicht sehr benutzerfreundlich ist. Zeilen sollten nur ausblenden (oder angezeigt werden), wenn die Schaltfläche "Filter anwenden" gedrückt wird.
Ich bin auf der Suche nach einer Möglichkeit, dies zu erreichen.
Verschiedene Ansichten auf der gleichen Quelle lösen nicht mein Problem, weil ich nur eine Ansicht verwende, aber danke für den Vorschlag! Das Problem besteht darin, dass das Aktualisieren der Quelle (collection.setItemAt) auch dazu führt, dass die Ansicht den Filter erneut anwendet. Ich habe mich gefragt, ob es einen Weg gibt, das zu verhindern. – xastor
Nicht, dass ich davon weiß. Es scheint, als wäre das Verhalten zu erwarten. Sie müssen die Komponente erweitern, um dies zu verhindern. wenn möglich. – JeffryHouser
Ich hoffte auf einen Weg, den Filter nur anzuwenden, wenn refresh() explizit aufgerufen wird. Ich schätze, das wird nicht passieren – xastor