1

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

(onColumnInit)看起来很有希望,但是看着我在控制台中得到的错误文本,我得到的印象是在表格甚至填满之前执行了一个。

我使用了官方 API 参考,但找不到我要查找的内容:当表 id 完成、准备好所有数据、填满表并准备调整大小时调用的事件。

如果有另一种优雅的解决方案,我也很感激,我什至在我的组件中使用了生命周期钩子,但正如预期的那样,这几乎不是一个解决方案。

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

4

1 回答 1

2

您的方案没有优雅的解决方案。目前 igxGrid 最初没有自动调整列大小的功能,因此您必须坚持使用.autosize()API。但是,您必须考虑以下几点:

  • .autosize()API 仅适用于当前可见的单元格。默认情况下,igxGrid 通过虚拟化来优化 DOM 渲染,这意味着并非所有的列单元格都是可见的。当您为网格设置时,虚拟化不会发生height=null,在这种情况下,所有行都被渲染并且没有垂直滚动条。在您的情况下,您希望使用height=nullAPI.autosize()以提供所需的结果。
  • igxGrid 在完全渲染时不会发出任何事件 - 你必须坚持使用 Angular 生命周期钩子。ngAfterViewInit应该为此目的工作。
于 2019-04-11T08:26:50.587 回答