制表符-字体大小更改时调整列标题的大小

时间:2018-10-24 17:37:54

标签: tabulator

我正在使用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";
}

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

1 个答案:

答案 0 :(得分:0)

您不应尝试从表外部以编程方式更改Tabulator中的元素。由于Tabulator使用虚拟DOM,因此这些更改可以随时覆盖,而无需另行通知。

如果需要格式化列标题,则应在要更改的列的列定义中使用 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

如果您需要继续使用方法,则可以调用表 redraw 函数来强制重建表:

table.redraw(true);

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