制表符 - 在字体大小更改时调整列 Header 的大小

Tabulator - Having Column Header Resize when Font Size Changes

我正在使用 Tabulator 和默认的 "fitData" 函数来调整单元格的大小。当我 a) 设置了默认字体大小和 b) 使用 rowFormatter:

更改行字体大小时,这完全符合预期
        rowFormatter:function(row){
        var rowData = row.getData();
        row.getElement().style.fontSize = config.body_font_size + "px";

以上方法有效,但是,当我想更改列标题的字体大小时:

var curHeaders = document.getElementsByClassName("tabulator-col");
for (var i = 0; i < curHeaders.length; i++) {
    curHeaders[i].style.fontSize = fontSize.toString() + "px";
}

这会更改所有列的字体大小,但不会适当调整列宽。是否有不同的 class 我应该在哪里分配字体?有没有办法以类似于 rowFormatter 的方式应用它?

您不应尝试从 table 外部以编程方式更改 Tabulator 内部的元素。因为 Tabulator 使用虚拟 DOM 这些更改可以随时被覆盖,恕不另行通知。

如果您需要格式化列 header 标题,您应该在列定义中使用 titleFormatter想要改变:

//define custom formatter
var customFormatter = function(cell, formatterParams, onRendered){

    //set font size
    cell.getElement().style.fontSize = fontSize.toString() + "px";

    return cell.getValue();
}

//in the column definition for a column
{title:"Name", field:"name", titleFormatter:customFormatter },

有关如何使用格式化程序的完整文档可在此处找到:http://tabulator.info/docs/4.0/format

如果您需要继续使用您的方法,那么您可以调用 table redraw 函数来强制 table 待重建:

table.redraw(true);

您是否有理由需要在 运行 时更改它,而不是仅在 CSS 时进行更改?