getColumnGroup() 方法在隐藏组中的所有列后返回 null



在 ag-grid 中,我有一个结构如下的表:

            |   Temperature      |  ....
 -----------|------|------|------|---------
 Date       | min  | avg  | max  |  ....
 -----------|------|------|------|---------
 2017-03-01 | 19.5 | 20.2 | 22.0 |  ....
 2017-03-02 | 18.8 | 20.4 | 21.6 |  ....

我希望能够隐藏整个温度列组,我这样做:

  • 按名称获取列组,并带有columnApi.getColumnGroup(groupId)
  • 获取具有getChildren()列子项
  • 遍历所有元素并根据列可见性状态隐藏/显示

隐藏部分工作正常,但是当我想再次显示列时,getColumnGroup 方法返回一个null对象,并且我无法将列设置为再次可见。有什么想法吗?

整个代码(Angular2组件的一部分(如下所示:

toggleColumn(groupId: string) {
    let groupColumn = this.dataGridOptions.columnApi.getColumnGroup(groupId);
    let children = groupColumn.getChildren();
    for (let idx = 0; idx < children.length; idx++) {
        let colId: string = children[idx].getUniqueId();
        let colState = this.dataGridOptions.columnApi.getColumn(colId);
        let colVisibility = colState.isVisible();
        this.dataGridOptions.columnApi.setColumnVisible(colId, !colVisibility);
    }
}

你不能直接(解释如下(。您可以做的是遍历所有列并获取父列并检查它是否与 groupId 匹配。

请看以下链接:https://github.com/ag-grid/ag-grid/issues/696

列始终存在,每列定义正好一列。列然后具有"可见"属性。

这些组是暂时的,仅在需要时存在(有还有"原始列组"的概念,以跟踪什么列在每个组中,但您无权访问它,它是内部(

[...]

https://www.ag-grid.com/angular-grid-master-slave/index.php

因此,总而言之,列组仅在显示组时才存在,并且如果列分裂。所以,这就是为什么列组如果不返回就不会返回的原因可见!

最新更新