Telerik Kendo UI grille: regroupement et de tri de survivre grille.refresh() mais s'est effondré groupes obtenir étendue; comment préserver l'état

Comme il est typique pour les grilles dans un "tableau de bord" de l'application qui surveille l'évolution dynamique des données, mon (Telerik) Kendo UI grille est à jour avec de nouvelles données périodiquement, toutes les 60 secondes:

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

Le schéma ne change pas, mais certaines nouvelles lignes pourraient apparaître dans le jeu de données, et que certains ont été supprimés.

Bien que le grid.refresh() laisse les groupements intacte, et l'état de tri est également préservé, tout s'est effondré groupes obtenir étendue.

QUESTION: Comment conserver (ou de rétablir) l'élargissement de la/état effondré de groupes, de sorte qu'un utilisateur en se concentrant sur un groupe avec les autres groupes s'est effondré n'est pas incommodés/frustré par les mises à jour périodiques, dans lequel chaque groupe reçoit re-développée par défaut)?

EDIT: Certains Winforms grilles de fournir un moyen de "prendre un instantané" du groupe expand/collapse état avant l'actualisation des données, puis d'appliquer à nouveau cet état après la source de données d'actualisation. Si le groupe de lignes d'en-tête dans le Kendo UI grille de Uides (qui a survécu à une actualisation) il pourrait en être fait. Mais voir l'approche proposée ci-dessous, qui n'implique pas persistante de Uides.

CAS D'UTILISATION:
Voici un exemple typique d'un peu dramatique des cas d'utilisation de cette fonctionnalité. Centre de Contrôle des Maladies est le suivi en temps réel des épidémies de une souche particulière du virus de la grippe, par ville. Toutes les 15 secondes, le jeu de données est en cours d'actualisation. Il se concentre pour l'instant sur Los Angeles et pour que la ville s'est étendue, et les autres villes s'est effondré. Si toutes les 15 secondes, l'ensemble de la grille augmente, il pisse hors médecins du CDC et ils y vont et étrangler le programmeur et puis ils rentrent à la maison pour jouer au golf, et tout le monde à Los Angeles succombe. Ne Kendo vraiment envie d'être responsable de ce désastre?

POSSIBLE AMÉLIORATION DE FONCTIONNALITÉ DE SUGGESTION:
Ignorer ma suggestion à propos d'un UIDE ci-dessus. Voici une meilleure façon.
La grille a

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

Maintenant, si le k-groupe-indicateur div pourrait contenir une liste de valeurs distinctes de data-field avec chaque clé est associée à des données d'être élargi/état effondré de la section correspondante, il serait alors possible d'enregistrer cette liste dans un tampon avant de faire un appel à la source de données.de données( someNewData) méthode, puis dans le gestionnaire d'événements à l'écoute liées aux données de l'événement, ceux d'élargir les états pourraient être réappliqué. Afin de trouver le correspondant de regroupement de la section pour la valeur de regroupement, il serait très utile si le k-grouping-row pourrait avoir une propriété appelée group-data-value qui a tenu la valeur de regroupement du regroupement de la section, par exemple, "Ventes" ou "Marketing" si l'on devait le regroupement de données, un champ appelé Ministère.

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

et puis dans le k-grouping-row: <tr class="k-grouping-row" group-data-value="Sales">

OriginalL'auteur Tim | 2012-12-19