如何解决使列适合 Tabulator 中未渲染的虚拟 DOM 行的数据
在 Tabulator 中,有 layout: 'fitData'
选项,用于使列宽适合数据。
然而,正如这里所见,它没有考虑由于虚拟 DOM 而当前未呈现的单元格:https://jsfiddle.net/tsqL3ju7/
这是由于 Column.fitToData
方法只考虑渲染的单元格:
Column.prototype.fitToData = function () {
// ... ellipsis ...
if (!self.width || !this.widthFixed) {
self.cells.forEach(function (cell) { // iterates on rendered cells
var width = cell.getWidth();
if (width > maxWidth) {
maxWidth = width;
}
});
// ... ellipsis ...
}
这当然是一个明智的实现,因为计算未渲染单元格的宽度需要临时渲染它们,这违背了虚拟 DOM 的目的。
但是,我仍然需要列足够大以包含任意长的文本而不会被截断。
表格在滚动时改变其列的大小是可以接受的。我设计的解决方案是挂钩 RowManager.scrollVertical()
并在更改呈现的行后添加回调。
但是这需要修补 Tabulator,所以这绝对不是一个理想的解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。