AGGrid - RowGroupOpened - 如何区分打开和关闭组? (服务器端型号)

问题描述 投票:0回答:1

根据AG Grid文档,在打开行组以及关闭行组时会触发RowGroupOpened。我正在使用Angular 7和AG Grid Enterprise Version 20(评估阶段)。

我需要区分这两个事件,以使expandedGroupIds数组保持最新。该数组应仅包含当前打开的组。

在执行服务器端排序后,我正在使用此数组来恢复先前的组状态(根据此文档:https://www.ag-grid.com/javascript-grid-server-side-model-grouping/#preserving-group-state

这是我的事件处理程序代码。问题是在用户单击列进行排序后也会触发该事件。在这种情况下,元素会无意中从数组中删除,下一次排序会导致所有行组被关闭。

onRowGroupOpened(event) {
if(event.data.id) {
  if (this.gridDataSource.hasExpandedGroupId(event.data.id)) {
    this.gridDataSource.removeExpandedGroupId(event.data.id);
  } else {
    this.gridDataSource.addExpandedGroupId(event.data.id);
  }
}}

谢谢您的帮助。亲切的问候Patrick

angular ag-grid
1个回答
0
投票

我没有使用服务器端模型,但不认为实现会有所不同。您可以使用expanded属性来区分组的开始或结束事件。这是一个例子 -

onRowGroupOpened(params) {
if(params.node.expanded) {
   // node was expanded, do your logic
   this.gridDataSource.addExpandedGroupId(params.data.id);
} else {
  // node was collapsed, so remove if present
     if (this.gridDataSource.hasExpandedGroupId(params.data.id)) {
       this.gridDataSource.removeExpandedGroupId(params.data.id);
      }
 }
}   

这样,您可以维护扩展节点ID的列表

© www.soinside.com 2019 - 2024. All rights reserved.