网格“完成”时如何执行事件

时间:2019-04-02 08:17:53

标签: angular ignite-ui-angular igx-grid

我要显示的数据和表列都是模块中的输入属性。现在,我希望能够为我的列配置数据提供一个标志,使其能够自动调整这些列的大小。找到合适的列并执行.autosize()函数很简单,但是我错过了网格本身上的拟合事件发射器。

(onColumnInit)似乎很有希望,但是在控制台中看到的错误文本给人的印象是,在表被填满之前就已经执行了。

我使用了官方的API参考,但是找不到我想要的东西:一个事件,该事件在表ID完成,准备好所有数据,填充表并准备调整大小时被调用

如果还有另一种优雅的解决方案,我也对此表示感谢,甚至在我的组件中都使用了生命周期钩子,但正如所料,这几乎不是解决方案。

简而言之,我有一个表控制模块,它充当igx-grid本身的内部容器,它提供了与项目其余部分的接口。它会与数据本身和“表字段”一起使用,这些数据定义了字段名称(按日期),显示的列名称,数据类型以及有用的标签,例如该列是否应可排序。同样,我想实现一个允许初始自动调整大小的标签。

1 个答案:

答案 0 :(得分:1)

您的方案没有完美的解决方案。当前,igxGrid尚不具备最初自动调整列大小的功能,因此您必须坚持使用.autosize() API。但是,您必须考虑以下因素:

  • .autosize() API仅适用于当前可见的单元格。默认情况下,igxGrid通过虚拟化DOM渲染来优化DOM渲染,这意味着并非所有列单元格都是可见的。当您为网格设置height=null时,不会进行虚拟化,在这种情况下,所有行都将呈现,并且没有垂直滚动条。在您的情况下,您可能希望使用height=null,以便.autosize() API能够提供理想的结果。
  • 在完全渲染igxGrid时不会发出事件-您必须坚持使用Angular生命周期挂钩。 ngAfterViewInit应该可以达到这个目的。