我有一个自定义功能,可以隐藏/显示制表符中的列。我单击的列应该隐藏,并显示其他几列。我可以通过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不是我最强的语言,如果我忽略了一些基本知识,请告诉我。
答案 0 :(得分:0)
您可以选中此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 + "")
}
}
};