Ag grid ag grid-getColumnGroup()方法在隐藏组中的所有列后返回null
在ag网格中,我有一个表,其结构如下:Ag grid ag grid-getColumnGroup()方法在隐藏组中的所有列后返回null,ag-grid,ag-grid-ng2,Ag Grid,Ag Grid Ng2,在ag网格中,我有一个表,其结构如下: | Temperature | .... -----------|------|------|------|--------- Date | min | avg | max | .... -----------|------|------|------|--------- 2017-03-01 | 19.5 | 20.2 | 22.0 | .... 2017-03-02 | 18.8
| Temperature | ....
-----------|------|------|------|---------
Date | min | avg | max | ....
-----------|------|------|------|---------
2017-03-01 | 19.5 | 20.2 | 22.0 | ....
2017-03-02 | 18.8 | 20.4 | 21.6 | ....
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);
}
}
我希望能够隐藏整个温度列组,我这样做:
| Temperature | ....
-----------|------|------|------|---------
Date | min | avg | max | ....
-----------|------|------|------|---------
2017-03-01 | 19.5 | 20.2 | 22.0 | ....
2017-03-02 | 18.8 | 20.4 | 21.6 | ....
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);
}
}
- 使用
columnApi.getColumnGroup(groupId)
- 使用
getChildren()
- 循环遍历所有元素并根据列的可见性状态隐藏/显示
getColumnGroup
方法返回一个null
对象,我无法将列设置为再次可见。有什么想法吗
整个代码(Angular2组件的一部分)如下所示:
| Temperature | ....
-----------|------|------|------|---------
Date | min | avg | max | ....
-----------|------|------|------|---------
2017-03-01 | 19.5 | 20.2 | 22.0 | ....
2017-03-02 | 18.8 | 20.4 | 21.6 | ....
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);
}
}
toggleColumn(groupId:string){
让groupColumn=this.dataGridOptions.columnApi.getColumnGroup(groupId);
让children=groupColumn.getChildren();
for(让idx=0;idx
您不能直接(解释如下)。
您可以做的是循环所有列,获取父项并检查它是否与groupId匹配
请看以下链接:
列始终存在,每个列定义只对应一列。这个
列则具有“可见”属性
这些组是暂时的,只有在需要时才存在(有
还有“OriginalColumnGroup”的概念,以跟踪
列在每个组中,但您无权访问它,它是
(内部)
[……]
因此,总而言之,列组仅在组显示时存在,并且
如果列相同,则同一组可以有多个组
分裂所以,这就是为什么列组不返回的原因
看得见