Сетка пользовательского интерфейса Telerik Kendo: группировка и сортировка сохраняются grid.refresh (), но свернутые группы расширяются; как сохранить государство

Как это типично для сетки в "приборная доска" приложение, которое отслеживает динамически изменяющиеся данные, моя (Telerik) сетка пользовательского интерфейса Kendo обновляется свежими данными периодически, каждые 60 секунд:

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

Схема не изменяется, но некоторые новые строки могут отображаться в наборе данных, а некоторые могут быть удалены.

Хотяgrid.refresh() оставляет группировки нетронутыми, и состояние сортировки также сохраняется, все свернутые группы расширяются.

ВОПРОС: Как сохранить (или восстановить) развернутое / свернутое состояние групп (чтобы пользователь, сосредоточенный на конкретной расширенной группе с другими свернутыми группами, не испытывал неудобств / разочарований от периодических обновлений, в которых каждая группа повторно раскрывается дефолт)?

РЕДАКТИРОВАТЬ: некоторые сетки Winforms предоставляют способ "сделай снимок группы развернуть / свернуть состояние перед обновлением данных, а затем повторно применить это состояние после обновления источника данных.Если бы строки заголовка группы в сетке пользовательского интерфейса Kendo имели UID (которые пережили обновление), это можно было бы сделать. Но посмотрите предложенный ниже подход, который не включает постоянные UID.

СЛУЧАЙ ИСПОЛЬЗОВАНИЯ: Вот типичный, но несколько драматичный вариант использования этой функции. Центр по контролю заболеваний контролирует в реальном времени вспышки определенного штамма гриппа по городам. Каждые 15 секунд набор данных обновляется. В данный момент они сосредоточены на Лос-Анджелесе, и этот город расширился, а другие города рухнули. Если каждые 15 секунд вся сетка расширяется, это бесит врачей в CDC, и они входят и душат программиста, а затем они идут домой, чтобы играть в гольф, и все в Лос-Анджелесе уступают. Кендо действительно хочет быть ответственным за это бедствие?

ВОЗМОЖНОЕ ПРЕДЛОЖЕНИЕ ОБСЛУЖИВАНИЯ ФУНКЦИЙ: игнорируйте мое предложение о UID выше. Вот'лучший способ. Сетка имеет


    ...

Теперь, если этот div-индикатор k-группы может содержать список различных значенийdata-field с каждым ключомЕсли связанные данные являются развернутым / свернутым состоянием соответствующего раздела, то можно было бы сохранить этот список в буфере перед вызовом метода dataSource.data (someNewData), а затем в обработчике событий, прослушивающем событие dataBound, эти расширенные состояния могут быть повторно применены. Чтобы найти соответствующий раздел группировки для значения группировки, было бы очень полезно, если быk-grouping-row может иметь свойство под названиемgroup-data-value который содержал значение группировки конкретного раздела группировки, например, "Продажи" или же "Маркетинг» если бы кто-то группировал по полю данных, названному Отделом.


       ...
   
     
     
     

а затем в:k-grouping-row

Ответы на вопрос(4)

Ваш ответ на вопрос