在ag-grid

时间:2018-09-24 07:52:43

标签: ag-grid

我有一个计算和隐藏不适合屏幕的列数的函数。我想在调整大小和隐藏列时排除列。这就是我所拥有的。

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);

1 个答案:

答案 0 :(得分:1)

不需要遍历数组中的所有值。您可以使用链接并将过滤器直接应用于getAllColumns(),如下所示:

let ctrOfColumns = this.gridOptionsValue
 .columnApi
 .getAllColumns()
 .filter((column) => column.colId !== 'toBeExcludedId');