agGrid:如何将无法分组的列拖动到行组面板后禁用隐藏?

时间:2020-09-22 15:55:17

标签: ag-grid ag-grid-angular

我有一个要向其中添加agGrid表的角度应用程序。我将表配置为允许对行进行分组,如下所示:

  <ag-grid-angular
    [columnDefs]="columnDefs"
    [rowData]="activeMethods"
    [groupDefaultExpanded]="-1"
    [rowGroupPanelShow]="'always'"
  >
  </ag-grid-angular>

然后将某些列设置为可分组,如下所示:

    enableRowGroup: true,
    enablePivot: true,

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

1 个答案:

答案 0 :(得分:1)

您可以保留suppressDragLeaveHidesColumns以防止在将非分组列拖动到网格之外时将其隐藏,然后利用Grid Event columnRowGroupChanged将要分组的列更改为隐藏。您可以找到documentation for this here

在版本24中,可以使用列applyColumnState(在this can be found here上的文档)中轻松实现这一点

将所有内容放在一起:

  onColumnRowGroupChanged(params) {
    let columnStateParams = [];

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

    params.columnApi.applyColumnState({
      state: columnStateParams,
    });
  }

我已经创建了一个Plunker showing this

“年和国家”列只能分组,“运动员”和“年龄”列不能分组。