制表符-标头格式器参数

时间:2019-05-23 03:13:00

标签: header tabulator

我正在尝试使用自定义格式程序以编程方式修改标题文本/颜色/样式。我看着问题Tabulator - Having Column Header Resize when Font Size Changes几乎是完美的,但是给出的示例格式化程序看起来像是单元格格式化程序,而不是标头标题格式化程序。

单元格格式器采用三个参数,而标题格式器则不采用任何参数。 (我相信-并且文档似乎同意:http://tabulator.info/docs/4.2/format#format-column

我的问题很简单:“标题标题格式化程序是否可以确定它位于哪一列?”

如果我对参数有误,那应该会有所帮助,但是我使用其他答案中给出的确切格式,但是将代码修改为

var customFormatter = function(cell, formatterParams, onRendered){
  alert(cell == undefined)
}

,浏览器返回“ true”。因此,它在我收到警报时正在运行,但没有参数。哪个与文档一致。

当我在php中以编程方式创建许多制表符时,我的替代方法是为每个表中的每一列创建一个不同的函数。但这似乎是一个可怕的解决方案。

1 个答案:

答案 0 :(得分:0)

我认为我不会从比我更了解这一点的人那里得到明确的答案,但我会坚持我最初的立场,即链接问题中的答案具有误导性。

单元格格式化程序具有以下参数:

var customFormatter = function(cell, formatterParams, onRendered){ alert(cell == undefined) // false }

...而titleformatter却没有:

var customFormatter = function(){ // can really only do very generic stuff without parameters, only the return value matters }

所以我的问题的答案是“不-使用titleFormatter函数时您无法分辨您所在的列”,因此每列需要一个。

由于我不创建一组函数就无法确定格式化程序用于哪一列,所以我采用了另一种方法,而是为每列创建了一个假的但唯一的字段名,然后在设置了表之后,就进行了遍历。标头元素,并使用标头中的文本映射到它们,然后将文本修改为适当的值,然后可以使用标头格式执行我喜欢的操作。

如果您采用类似的方式,我只会修改文本和背景色。请记住,制表符不知道您已完成此操作,可能会还原它们,而且我所做的更改没有调整大小的问题。

这意味着我为Tabulator创建了一个完整的包装器类,但是无论如何它都使它变得更加强大。话虽如此,我认为所有可用的免费网格选项都经过测试,我认为Tabulator已经足够强大了。