Telerik Kendo UI grid: gruppieren und Sortieren überleben raster.refresh () -, sondern stürzte Gruppen erweitert; how to preserve state

Als typisch für Netze in einem "dashboard" - Anwendung, die überwacht dynamisch ändernden Daten, mein (Telerik) Kendo UI grid aktualisiert wird mit neuen Daten periodisch, alle 60 Sekunden:

grid.dataSource.data(freshData);
grid.refresh();  //have been informed this refresh may not be necessary

Schema nicht ändern, aber ein paar neue Zeilen zeigen, bis in das dataset und etwas entfernt worden sein könnte.

Obwohl die grid.refresh() lässt sich die Gruppierungen erhalten, und die Art Staat ist auch erhalten geblieben, alle zusammengebrochen Gruppen erweitert werden.

FRAGE: Wie zur Erhaltung (oder Wiederherstellung) der erweiterten/reduzierten Status der Gruppen (also einem Benutzer Schwerpunkt auf eine bestimmte Gruppe erweitert mit den anderen Gruppen zusammengebrochen ist, nicht belästigt/frustriert durch die regelmäßigen Aktualisierungen, in denen jede Gruppe bekommt einen re-standardmäßig erweitert)?

EDIT: Einige Winforms-Netze bieten eine Möglichkeit, "take a snapshot" von der Gruppe erweitern/reduzieren Zustand vor der Aktualisierung der Daten, und klicken Sie dann erneut, den Zustand, nachdem die Datenquelle aktualisieren. Wenn die Gruppe header-Zeilen in der Kendo UI grid hatte UIDs (überlebt, dass ein refresh), es getan werden könnte. Aber siehe den vorgeschlagenen Ansatz unten, die nicht die hartnäckigen Flüssigkeiten.

ANWENDUNGSFALL:
Hier ist ein typischer, wenn auch etwas dramatische Anwendungsfall für dieses feature. Center for Disease Control ist die Echtzeit-überwachung der Ausbrüche eine Besondere Belastung der Grippe, durch die Stadt. Alle 15 Sekunden wird der Datensatz aktualisiert wird. Sie passieren werden, um sich im moment auf Los Angeles und die Stadt erweitert, und die anderen Städte zusammengebrochen. Wenn alle 15 Sekunden das gesamte Netz erweitert, es kotzt aus der ärzte bei der CDC, und Sie gehen in und um die Programmierer und dann gehen Sie nach Hause, zu spielen golf, und jeder in Los Angeles geschlagen geben. Tut Kendo will wirklich verantwortlich sein für diese Katastrophe?

MÖGLICHE FUNKTION VERBESSERUNGS-VORSCHLAG:
Ignorieren Sie meinen Vorschlag über eine UID oben. Hier ist eine bessere Möglichkeit.
Das raster hat

<div class="k-group-indicator" data-field="{groupedByDataFieldName}">
    ...
</div>

Nun, wenn das k-Gruppe-Indikator div könnte eine Liste der eindeutigen Werte von data-field mit jedem Schlüssel zugeordneten Daten, die den erweiterten/reduzierten Zustand des entsprechenden Paragrafen, wäre es dann möglich sein, speichern Sie diese Liste in einen Puffer, bevor Sie einen Anruf an die dataSource.Daten( someNewData) - Methode, und klicken Sie dann in der eventhandler-listening für die Datenbindung Ereignis, diejenigen Staaten erweitern könnte erneuert werden. Zu finden ist die entsprechende Gruppierung Abschnitt werden für die Gruppierung der Wert, es wäre sehr hilfreich, wenn die k-grouping-row könnte haben eine Eigenschaft namens group-data-value welche die Gruppierung der Wert der besonderen Gruppierung Abschnitt, z.B. "Sales" oder "Marketing", wenn man die Gruppierung von einem Daten-Feld namens Abteilung.

<div class="k-group-indicator" data-field="dept" data-title="Dept" data-dir="asc">
       ...
   <div class="k-group-distinct-values">
     <div group-data-value="Sales" aria-expanded="false" />
     <div group-data-value="Events Planning" aria-expanded="true" />
   </div>  
</div>

und dann in die k-grouping-row: <tr class="k-grouping-row" group-data-value="Sales">

InformationsquelleAutor Tim | 2012-12-19

Schreibe einen Kommentar