【发布时间】:2020-08-10 18:46:39
【问题描述】:
我有各种请求,我的 agGrid 中的 columnDefs 必须更改,因为没有可用于相应属性的 API 方法(例如,将列过滤器和类型更改为数字时)。
在这种情况下,我目前正在构建一个新的 columnDef 并通过 ...api.setColumnDefs(); 设置它 看来这是更新 columnDefs 的正确方法。直接访问grid当前的columnDefs属性是不行的(至少Grid不能被刷新接受修改)
这工作得很好,除了这样一个事实,这显然会从头开始重新创建列,因此为它们分配新的(增加的)colId。例如“first”列在 colDef 更新前为 colId: 0,在更新后为 colId: 1。
现在我也面临着保持列状态变化的请求,这种行为给我带来了一些挑战。 由于 getColumnState() 和 setColumnState() 仅在 colIds 与以前相同时才有效,因此我需要添加自己的逻辑。
为此,我目前正在通过匹配 headerNames 来更新我保存状态中的 colId... 尽管这不是很好,但我现在可以忍受它。
我当前的问题是,我无法以这种方式保留列折叠/展开状态,因为此信息未存储在 colDef 中。
rememberGroupStateWhenNewData: true 也不起作用,因为 colId 被更改/增加。
我的问题可能可以通过两种不同的方式解决
第一种也是最好的方法:一种无需更新 columnDefs 的方法 改变 colIds
否则:保留组的方法 手动折叠/展开状态
提前谢谢大家
【问题讨论】:
-
为什么不为每一列定义自己的 colId?
标签: javascript grid ag-grid collapse columndefinition