SlickGrid中是否可以使用变量rowheight?

san*_*die 25 javascript jquery datagrid slickgrid

我想根据内容大小提供可变行高.在Slickgrid有可能吗?

你能指出我的任何例子吗?

Cod*_*ure 14

这是可能的,但这不是微不足道的,你可能会受到性能损失.SlickGrid的工作方式,需要能够快速回答以下两个问题:

  • 对于给定的行X,该行的顶部偏移量是多少?
  • 对于给定的偏移Y,该偏移处的哪一行?

当你使用静态行高时,回答这些问题是微不足道的; 但是,对于动态行高,您需要维护一些额外的数据结构.

这是我在Slick.Grid.js中改变的大致内容

  • 添加新数组以跟踪行大小.将所有行初始化为默认大小
  • 删除createCssRules中设置单元格高度的css规则
  • 在renderRows的末尾添加一些代码,用于检查行中每个单元格的渲染高度,然后将所有单元格的高度设置为最大值(并将高度存储在行大小数组中).您还需要根据当前行之上的行高高度调整顶部偏移量.
  • 将代码添加到渲染的末尾,以将画布调整为所有行高的总和.
  • 更新getViewport以根据行高的总和返回顶行和底行.
  • 还有一些其他地方使用options.rowHeight.你可以忽略它们中的一些,但至少,画布调整大小的任何地方都需要改变.

为了使这个实用(高性能),您还需要行顶部偏移的缓存(行大小的总和的缓存).这将实现第一个问题的快速计算,并允许二进制搜索来回答第二个问题.

我希望有所帮助.


Tin*_*Tin 2

简单明了,SlickGrid 不支持这一点,而且很可能永远不会支持。对不起。