我正在使用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?
答案 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中进行更改?