Ag grid agGrid:如何在将不可分组的列拖动到行组面板后禁用隐藏这些列?

Ag grid agGrid:如何在将不可分组的列拖动到行组面板后禁用隐藏这些列?,ag-grid,ag-grid-angular,Ag Grid,Ag Grid Angular,我有一个角度应用程序,我正在添加一个agGrid表。我将表配置为允许按如下方式分组行: <ag-grid-angular [columnDefs]="columnDefs" [rowData]="activeMethods" [groupDefaultExpanded]="-1" [rowGroupPanelShow]="'always'" > </ag-

我有一个角度应用程序,我正在添加一个agGrid表。我将表配置为允许按如下方式分组行:

  <ag-grid-angular
    [columnDefs]="columnDefs"
    [rowData]="activeMethods"
    [groupDefaultExpanded]="-1"
    [rowGroupPanelShow]="'always'"
  >
  </ag-grid-angular>
    enableRowGroup: true,
    enablePivot: true,

这将显示“行组”面板,并允许对我拖到其中的列进行分组,但问题是,我拖到面板中的“不可分组”列是隐藏的。我需要这些列在拖动到那里时不要隐藏。我知道
suppressDragLeaveHidesColumns
参数在将任何列从表中拖出时禁用隐藏该列,但我希望将“groupable”列拖到组面板时仍然隐藏。我想要实现的是容易实现的吗?

您可以保留
suppressDragLeaveHidesColumns
以防止在拖动到网格外时隐藏非分组列,然后利用网格事件
columnRowGroupChanged
更改要分组的列。你可以找到那个

在版本24中,可以使用列API方法
applyColumnState
,在

综上所述:

  onColumnRowGroupChanged(params) {
    let columnStateParams = [];

    params.columns.forEach(col => {
      columnStateParams.push({ colId: col.getColId(), hide: true });
    });

    params.columnApi.applyColumnState({
      state: columnStateParams,
    });
  }
我创造了一个


年份和国家栏只能分组,运动员和年龄栏不能分组。

回答得好!谢谢