Angular 德国电网公司;角度:autoSizeColumns()截断单元格文本

Angular 德国电网公司;角度:autoSizeColumns()截断单元格文本,angular,ag-grid,ag-grid-angular,Angular,Ag Grid,Ag Grid Angular,我使用的是aggridv21和angular6,带有服务器端行模型。我想自动调整列宽,但其行为与我预期的不完全一样 当我异步获取数据时,当我在onGridReady()中获取数据时,我会执行一个gridColumnApi.autoSizeColumns(…)(我也尝试在onFirstDataRendered()中执行此操作,但它具有相同的行为) 这将以如下方式呈现数据,截断值(屏幕截图1): 如果我通过双击垂直列分隔符(如Excel中的分隔符)手动触发列大小调整,则列大小将调整为所需大小(屏幕

我使用的是aggridv21和angular6,带有服务器端行模型。我想自动调整列宽,但其行为与我预期的不完全一样

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

这将以如下方式呈现数据,截断值(屏幕截图1):

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

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

(这是否是一个计时问题,即当我通过双击手动调整大小时,网格的信息比初始渲染时的信息更多,这就是为什么列的大小正确调整的原因?)

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


EDIT2:已解决,排序为。我的用例中有一个特定的方面会导致计时不明确,请参见下面的注释。

事件虽然您最初的问题似乎与计时问题有关,但还有另一个问题:ag grid无法根据尚未渲染的行计算列的大小

根据ag网格参考:

autoSizeColumns()查看屏幕上渲染的单元格,并正常工作 根据它看到的内容确定宽度。它无法看到显示的列 由于列虚拟化而未呈现。因此这是不可能的 自动调整屏幕上不可见的列的大小


谢谢!是的,在此期间,我对ag电网的流量有了更深入的了解,并且更加清楚了真正发生的事情。我有一个更复杂的场景,我从服务器获取列定义和数据,但有些列实际上是外键ID。因此网格获取列定义和数据,立即显示,而不让用户等待,而外键ID在后台解析,完成后使用rxjs主题发布。网格订阅此主题并使用解析的外键值更新行数据。[…][…]因此,当网格已呈现已解析的外键值时,调整大小是正确的,而当网格尚未呈现已解析的外键值时,调整大小是不正确的。您可以在哪里解决此问题?我有一个非常基本的例子,如果列的标题小于其内容,它们仍然会截断。@johansantana在我的例子中,这是一个与我的具体实现相关的问题(请参阅我对下面答案的评论)。我的建议是,确保在所有其他网格数据更新完成后调整大小。对不起,我不能说得更具体了!