首页 > 解决方案 > 制表符 getElement 不是函数

问题描述

我目前在数组中有一个包含 100 个元素的制表符表。当我调用该函数来抓取特定单元格时,它会设法抓取前 25 行并更改我想要的特定单元格的颜色。

问题是,当其他一切都相同时,之后的那些不会改变颜色。我该如何解决?

这是我用来生成背景颜色的代码。它适用于前 25 行,但无法抓取接下来的 75 行

var allRowData = table.getRows();

    // loops the entire row
    allRowData.forEach(x => {

        // using the row data, grab the columns and compare with a condition
        scope.columns.forEach(y => {

            if (y.priority == 3) { // checks for the priority number to add a color to it
                var rowCell = x.getCell(`${y.fieldName}`);
                rowCell.getElement().style.backgroundColor = "#F00";
            }
        });
    });

标签: javascripttabulator

解决方案


您不应该尝试从 Tabulator 外部直接操作表格的布局。

Tabulator 使用虚拟 DOM,这意味着它将根据需要创建和销毁表格元素,这意味着您只能对当前可见的元素进行样式设置,当这些元素更新时,任何先前的格式都可能会丢失,恕不另行通知。

如果您希望设置单元格元素的样式,则必须使用formatter列定义中的rowFormatter函数或重绘行/单元格时调用的表上的函数。

这些的全部细节可以在格式化程序文档中找到

如果您想根据表外的内容更改行的状态,那么您的格式化程序应该引用这个外部变量,当您更新外部状态时,您应该触redraw发表上的函数以重新触发格式化程序


推荐阅读