Aktualisieren von Datagrid

8

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?

    
Damir 31.03.2011, 11:58
quelle

6 Antworten

22

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%     
Tom Gruner 31.03.2011, 23:25
quelle
7

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)

    
Andrei 31.03.2011 13:14
quelle
3

(Ich nehme an, Sie haben bereits ein Arbeitsraster und Sie möchten den Speicher des Gitters komplett ändern)

  1. Erstellen Sie einen neuen Datenspeicher mit Ihrem neuen Wert:

    %Vor%

    (Daten sind die Antwort von einer Ajax-Anfrage für mich)

  2. Ändern Sie den Speicher Ihres Gitters mit dem neuen:

    %Vor%
  3. Rendern:

    %Vor%
tufekoi 08.01.2013 15:59
quelle
2

Dies aktualisiert den Grid Store und aktualisiert die Ansicht des Grids in der neuesten Version von Dojo 1.9

%Vor%     
Mahesh 14.05.2014 11:29
quelle
1

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 ...

    
WoodenKitty 15.07.2014 04:31
quelle
0

damit kann ich eine bestimmte Zeile aktualisieren. Dieses Beispiel ist für ein Baumgitter.

%Vor%     
cabaji99 16.08.2012 12:07
quelle