【问题标题】:Cell outside virtual DOM cannot be accessed?无法访问虚拟 DOM 之外的单元格?
【发布时间】:2021-03-11 15:52:58
【问题描述】:

我有一个非常深的嵌套 Tabulator 表,它启用了自动虚拟 DOM(默认行为),大约有 50 行。表格内部包裹在div 内,固定高度为500px。 当尝试访问视图之外的元素时,例如:

row = self.table.getRows(row_index)
cell_element = row.getCell(column_index).getElement()

我得到错误:

row.getCell(...).getElement is not a function

为了找出我是否做错了什么,我遍历了表中的所有行,上面的示例适用于所有可见行以及上下几行,但不适用于不可见行。 有什么想法吗?

我想要实现的是遍历所有行并检查每行中的特定单元格索引是否包含某个字符串,将该单元格的文本权重设置为bold

row = self.table.getRows(row_index)
cell_element = row.getCell(5).getElement()
cell_element.style["fontWeight"] = "bold"

【问题讨论】:

  • Tabulator 使用虚拟 DOM 来提高大型数据集的渲染效率。这意味着实际上只有可见的行(以及上面和下面的几个)存在。当您滚动行时,它们会随着它们变得可见而实时创建和销毁。如果你描述了你想用这个元素做什么,有人可能会描述一个更好的方法来完成你想要的。
  • 谢谢,添加了我的使用示例。

标签: tabulator


【解决方案1】:

要允许虚拟 DOM 创建和销毁单元格,您需要使用 custom formatter

{title:"Name", field:"name", formatter:function(cell, formatterParams, onRendered){
    if (cell.getValue() === 'Look at me') {
        cell.getElement().style.fontWeight = 'bold';
    }
    return cell.getValue();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 2014-04-08
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多