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