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