Angenommen, ich weiß, welcher Zeilenindex als Ziel verwendet werden soll (mit this.rowToBeDeleted mit einem Wert von 2), wie kann ich diese Zeile nur aus dem Raster ausblenden, aber nicht aus dem Speicher (ich habe a Flag im Store, welches angibt, welche Zeilen später in meinem PHP-Webservice-Code aus der db gelöscht werden sollen.)
Sie können entweder eine der Methoden store.filter()
verwenden oder Sie können das Zeilenelement ausblenden.
Ich denke, es ist viel besser, den Datensatz aus dem Speicher zu entfernen und den Speicher zu aktualisieren, da Sie den Datensatz löschen und ihn nicht einfach ausblenden. Wenn sich der Speicher im Stapelmodus befindet (Standardeinstellung: Stapel: true, restful: false), merkt er sich, welche Zeilen Sie entfernt haben, und sendet keine Anforderung an den Server, bis Sie store.save()
aufrufen.
In ExtJS 4.1 gibt es kein view.getRow(..)
. Stattdessen können Sie verwenden:
, um die Zeile am angegebenen Index auszublenden, und
%Vor%um es zu zeigen (wo 'das' das Gitter ist).
CSS-Klasse hidden
ist definiert als
Dies ist nützlich für besondere Szenarien, in denen store.filterBy()
nicht geeignet ist.
Ich empfehle, store.FilterBy()
zu verwenden und eine Funktion zu übergeben, um den Wert des Wertes in rowToBedeleted zu testen:
Ich habe vor einiger Zeit einen grundlegenden Blogpost über gridfiltering geschrieben, den Sie hier lesen können: Ссылка
Sie können dafür die Methoden store.filter()
oder store.filterBy()
verwenden.
Legen Sie eine "versteckte" Eigenschaft für Ihre Datensätze fest, und filtern Sie alle Datensätze, die ausgeblendet sind, auf "True" (Wahr). Auf diese Weise sind sie immer noch im Geschäft vorhanden, aber im Raster nicht sichtbar.
Schreiben Sie in der Tabelle grid js folgenden Code, um ein CSS auf die Zeilen anzuwenden, die Sie ausblenden möchten.
%Vor%Definieren Sie nun ein benutzerdefiniertes CSS in der Datei custom.css:
%Vor%Dadurch werden Zeilen im Raster ausgeblendet, ohne den Speicher zu entfernen oder zu filtern.
Tags und Links extjs