【问题标题】:Tabulator - Header Formatter parameters制表符 - 标题格式化程序参数
【发布时间】:2019-05-23 03:13:00
【问题描述】:

我正在尝试使用自定义格式化程序以编程方式修改标题文本/颜色/样式。我查看了几乎完美的问题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)
}

并且浏览器返回“真”。所以当我收到警报时它正在运行,但没有参数。这与文档一致。

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

【问题讨论】:

标签: header tabulator


【解决方案1】:

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

单元格格式化程序有参数:

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 创建了一个完整的包装类,但这让它变得更加强大。话虽如此,并且我认为所有免费的网格选项都经过了考验,在我看来,Tabulator 已经足够强大了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2023-03-10
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多