ag-grid如何通过API设置columnGroupShow实现列组展开时列显隐切换
ag-grid 动态设置
columnGroupShow实现方案 完全支持通过ColumnApi或GridApi设置columnGroupShow属性,可直接满足列组展开时动态切换列显隐的实时交互需求。
核心实现API
- 全量更新方案(全版本兼容)
先调用columnApi.getColumnDefs()获取当前完整列配置,遍历修改目标列的columnGroupShow属性值后,调用columnApi.setColumnDefs(修改后的列配置数组)提交变更,视图会立即同步更新。 - 增量更新方案(v28及以上版本推荐,性能更优)
不需要全量重载所有列配置,直接调用columnApi.applyColumnState()指定目标列ID和对应的columnGroupShow值即可,高频交互场景下用这个方法不会有性能卡顿,示例:columnApi.applyColumnState({ state: [ { colId: 'yourColumnId', columnGroupShow: 'open' } ] })
列组展开联动逻辑
要实现列组展开/收起时自动切换列显隐,直接绑定grid的columnGroupOpened事件即可:
- 事件回调会返回当前触发状态变更的列组ID、列组当前展开/收起状态
- 在回调中根据业务规则匹配需要调整的列,调用上述API修改对应列的
columnGroupShow值即可,状态更新无延迟。
配置注意事项:
columnGroupShow仅支持三个有效值,传其他值不会生效:
'open':仅列组处于展开状态时显示该列'closed':仅列组处于收起状态时显示该列null/不配置:无论列组展开还是收起,列始终显示
不要直接修改原始列定义对象却不调用上述API提交变更,ag-grid检测不到这类隐式修改,不会触发视图刷新。
内容的提问来源于stack exchange,提问作者ram
相关产品推荐
相关产品推荐

