我正在使用带有服务器端行模型的ag-grid v21和Angular 6。我想自动调整列宽的大小,但是行为与我期望的不一样。
当我异步获取数据时,当我在 onGridReady()中获取数据时,我会执行gridColumnApi.autoSizeColumns(...)
(我也尝试在 onFirstDataRendered()中这样做>,但具有相同的行为。
这将呈现这样的数据,将值截断(屏幕截图1):
如果我通过双击垂直列分隔符(如在Excel中)手动触发调整列大小,则列将调整为我想要的大小(屏幕截图2):
我的问题是:如何自动从屏幕截图2中实现行为?
(这是一个计时问题,即当我通过双击手动调整大小时,网格具有比初始渲染时更多的信息,这就是为什么要正确调整列的大小吗?)
编辑:似乎是一个计时问题。我现在在调整onGridSizeChanged()的大小,有时(当onGridReady()需要更长的时间(?),并且在onGridReady()之后调用onGridSizeChanged()时,它会正确调整大小。
EDIT2 :已解决。这是我用例的一个特定方面,导致时序不明确,请参阅下面的评论。
答案 0 :(得分:1)
事件虽然最初的问题似乎与计时问题有关,但仍然存在另一个问题:ag网格无法基于尚未呈现的行来计算列的大小。
从ag网格参考:
autoSizeColumns()在屏幕上查看呈现的单元格,然后工作 根据所看到的宽度。它看不到 由于列虚拟化而未呈现。因此不可能 自动调整屏幕上不可见的列的大小。
https://www.ag-grid.com/javascript-grid-resizing/#auto-size-columns