我有一个自定义函数,隐藏/显示我的制表器中的列。我点击的列应该隐藏,并显示其他几列。我可以通过单击自定义单元格格式器中的对象来正常工作,但我想通过单击列标题来调用它。它的工作原理除了我似乎无法获取我从列标题中单击的列的句柄以隐藏列。
我正在尝试获取列对象并将其传递给我的函数,以便在显示其他列时隐藏该列。我愿意采取其他方式来做到这一点。
这工作(单元格格式化程序)
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不是我最强的语言,如果我忽略了一些基本的东西,请告诉我。
您可以检查此JsFiddle它隐藏除您单击的列之外的所有其他列
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 + "")
}
}
};