Ich erstelle dojox.grid.datagrid und fülle den Inhalt aus dem Array wie im Beispiel letztes Beispiel Seite . Während der Zeit ändere ich den Wert dieses Arrays im Code. Wie aktualisiert man den Inhalt dieses Rasters? Wie man neue Daten vom geänderten Array lädt?
Um Werte im Raster zu ändern, müssen Sie den Wert im Speicher des Rasters ändern. Die Gitterdaten sind an die Speicherdaten gebunden, und das Gitter aktualisiert sich bei Bedarf selbst.
Der Schlüssel ist also, Dojos Daten-API zu verstehen und wie Speicher in Dojo funktionieren. Manipulieren Sie die Daten nicht direkt im Raster, sondern manipulieren Sie sie im Geschäft.
Im Idealfall handelt es sich bei dem Speicher um Ihr Array, das Sie bei der Ausführung der Anwendung bearbeiten, und Sie sollten das Array nicht mit dem Raster synchronisieren müssen. Verwenden Sie einfach den ItemFileWriteStore als Datenspeicher, es sei denn, das ist nicht möglich.
Auch die Verwendung der Dojo-Datenidentität macht es sehr einfach, Elemente im Raster zu finden, wenn dies möglich ist. Wenn Sie wissen, wann ein Element in Ihrer Anwendung aktualisiert, gelöscht oder geändert wird, sollten Sie in der Lage sein, den Rasterspeicher nach Bedarf zu ändern, wenn die Aktion ausgeführt wird. Dies ist definitiv der bevorzugte Ansatz. Wenn Sie das nicht können, müssen Sie einen generellen Aufruf durchführen und den onComplete-Callback verwenden, um Ihre Arrays manuell zu synchronisieren, was sehr langsam ist und nicht gut skaliert. In diesem Fall können Sie auch einfach einen neuen Store erstellen zusammen und weisen Sie es dem Raster mit grid.setStore (myNewStore)
Hier ist eine Fiedel mit einer grundlegenden Erstellungs-, Aktualisierungs- und Löschoperation: Ссылка
Diese Beispiele nutzen alle Vorteile beim Deklarieren einer Identität beim Erstellen des Geschäfts.
%Vor%AKTUALISIERUNG AKTUALISIEREN:
%Vor%Fügt ein neues Element ein:
%Vor%EIN PUNKT LÖSCHEN:
%Vor%Das folgende Code-Snippet kann zum Aktualisieren des Rasters verwendet werden:
%Vor%BEARBEITEN:
Dogo Data Grid-Referenzhandbuch (Beispiele zum Hinzufügen / Entfernen von Zeilen, Aktualisieren von Grid-Daten)
(Ich nehme an, Sie haben bereits ein Arbeitsraster und Sie möchten den Speicher des Gitters komplett ändern)
Erstellen Sie einen neuen Datenspeicher mit Ihrem neuen Wert:
%Vor%(Daten sind die Antwort von einer Ajax-Anfrage für mich)
Ändern Sie den Speicher Ihres Gitters mit dem neuen:
%Vor%Rendern:
%Vor%Ich hatte ein serverseitig gefiltertes EnhancedGrid, das durch Ändern des Speichers glücklich aktualisiert wurde und in den anderen Antworten angezeigt wurde.
Allerdings hatte ich ein anderes EnhancedGrid, das nicht aktualisiert wurde, wenn ein Filter angewendet wurde. Es könnte mit der Tatsache zu tun haben, dass es Client-Seite gefiltert wurde (aber Daten kommen immer noch von Server mit JsonRest-Speicher), aber ich kenne nicht wirklich die Ursache. Entweder sollte die Lösung mit folgendem Code aktualisiert werden:
%Vor%Es ist hacky und komisch, aber wenn alles andere fehlschlägt ...
Tags und Links dojo dojox.grid dojox.grid.datagrid