我有一个计算和隐藏不适合屏幕的列数的函数。我想在调整大小和隐藏列时排除列。这就是我所拥有的。
let ctrOfColumns = this.gridOptionsValue.columnApi.getAllColumns();
这将返回我拥有的列。我想排除colId为'toBeExcludedId'的特定列,以便不会将其包含在隐藏算法列中。
这是我隐藏列的算法
let gridWidthOfMyTable = $('#idOfMyGrid').outerWidth();
let columnsToBeShown = [];
let columnsToBeHidden = [];
let totalWidthOfColumn = 0;
for(let x = 0 ; x < ctrOfColumns.length; x ++){
const singleColumn = ctrOfColumns[x];
totalWidthOfColumn += singleColumn.getMinWidth();
if (totalWidthOfColumn > gridWidthOfMyTable) {
columnsToBeHidden.push(singleColumn);
} else {
columnsToBeShown.push(singleColumn);
}
}
this.gridOptionsValue.columnApi.setColumnsVisible(columnsToBeShown, true);
this.gridOptionsValue.columnApi.setColumnsVisible(columnsToBeHidden, false);
答案 0 :(得分:1)
不需要遍历数组中的所有值。您可以使用链接并将过滤器直接应用于getAllColumns(),如下所示:
let ctrOfColumns = this.gridOptionsValue
.columnApi
.getAllColumns()
.filter((column) => column.colId !== 'toBeExcludedId');