ag-grid & angular: autoSizeColumns() 截断单元格文本

ag-grid & angular: autoSizeColumns() truncates cell text

我正在使用带有服务器端行模型的 ag-grid v21 & Angular 6。我想自动调整列宽,但行为并不完全符合我的预期。

当我异步获取数据时,当我在 onGridReady() 中获取数据时,我会执行 gridColumnApi.autoSizeColumns(...) (我也尝试在 onFirstDataRendered(),但它具有相同的行为)。

这样呈现数据,截断值(屏幕截图 1):

如果我通过双击垂直列分隔符手动触发列大小调整,如 Excel,列将调整为我想要的大小(屏幕截图 2):

我的问题是:如何自动实现屏幕截图 2 中的行为?

(这是时间问题吗,即当我通过双击手动调整大小时,网格比初始渲染时具有更多信息,这就是正确调整列大小的原因?)

EDIT:似乎是时间问题。我现在在 onGridSizeChanged() 中调整大小,有时(当 onGridReady() 需要更长的时间(?),并且在 onGridReady() 之后调用 onGridSizeChanged() 时,它会正确调整大小。

EDIT2:解决了,有点。这是我用例的一个特定方面导致时间不明确,请参阅下面的评论。

尽管您最初的问题似乎与时间问题有关,但还有另一个问题:ag 网格无法根据尚未呈现的行计算列的大小。

来自 ag 网格参考:

autoSizeColumns() looks at the rendered cells on the screen, and works out the width based on what it sees. It cannot see the columns that are not rendered due to column virtualisation. Thus it is not possible to autosize a column that is not visible on the screen.

https://www.ag-grid.com/javascript-grid-resizing/#auto-size-columns