Our apps require refresh of the grid's underlying dataset every 15 seconds. By default, this refresh expands all groups. With a couple of enhancements to the grid, we can create a map of collapsed groups and recollapse them after a call to dataSource.data(someNewFreshData). We need two events, groupCollapse and groupExpand. And the k-grouping-row needs a custom data attribute data-k-distinct-values which contains a JSON representation of the array of distinct data values of the current group. For example, if the grid were grouped by state by city by zip, the custom data-k-distinct-values attribute for one of the groups in the grid might contain this hypothetical data: "['California','Beverly Hills','90210']". WIth these complementary enhancements, we'd have all we need to store a map of collapsed groups that we could use to fnd these groups again after a call to dataSource.data(someNewFreshData). The new data has the same schema as the previously bound dataset.