制表符从自定义列titleFormatter获取列

时间:2019-04-16 16:57:07

标签: tabulator

我有一个自定义功能,可以隐藏/显示制表符中的列。我单击的列应该隐藏,并显示其他几列。我可以通过onclick自定义单元格格式化程序中的对象来正常运行此函数,但是我想通过单击列标题来调用它。它的工作原理是,除了似乎无法获取我为了隐藏该列而从列标题中单击的列的句柄。

我试图获取列对象并将其传递给函数,以便在显示其他列时可以隐藏该列。我愿意采取其他方式来做到这一点。

这有效(单元格格式化程序)

var showForecastCell = function(cell, formatterParams, onRendered){
   ...
   span.onclick = function(){showForecast(cell.getColumn())};
   return span
}

这不起作用(列titleFormatter)

var showForecastHeader = function(t,e,o,i,n){
   ...
   span.onclick = function(){showForecast(t.getColumn())};
   return span
}

是否可以通过单击列标题来传递列对象?否则,如果单击标题后有一种更简单的方法来隐藏该列,则欢迎提出建议。我必须承认javascript不是我最强的语言,如果我忽略了一些基本知识,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可以选中此JsFiddle,它会隐藏除您单击的列以外的所有其他列

对于列回调,您可以查看文档herehere

  const hideAllButThis = function(e, column) {
  const showField = column._column.field;
  const columns = column._column.table.columnManager.columns;
  for (let i = 0; i < columns.length; i++) {
    if (columns[i].field !== showField) {
      table.hideColumn("" + columns[i].field + "")
    }
  }
};