Ag grid 网格隐藏行

Ag grid 网格隐藏行,ag-grid,ag-grid-ng2,Ag Grid,Ag Grid Ng2,是否有任何实现的功能可以有条件地隐藏行 我将它们实例化如下: let rows = [ { name: "Adam", isVisible: true }, { name: "Bert", isVisible: true }, { name: "Carl", isVisible: false } ]; for(let row of rows) row["height"] = row.isVisible ? 25 : 0; this.rowData = rows;

是否有任何实现的功能可以有条件地隐藏行

我将它们实例化如下:

let rows = [
    { name: "Adam", isVisible: true },
    { name: "Bert", isVisible: true },
    { name: "Carl", isVisible: false }
];

for(let row of rows)
  row["height"] = row.isVisible ? 25 : 0;

this.rowData = rows;
然后我提供这个函数来设置行高:

this.gridOptions.getRowHeight = (params) => {
    return params.data.height;
}

这不是一个完美的解决方案,特别是因为如果网格以高度为0的行结束,它将显示该行(高度为4px左右)

我认为最好的方法是根据对象的属性
isVisible
过滤数据

一项实施可以是:

gridOptions.isExternalFilterPresent = () => {return true;}
gridOptions.doesExternalFilterPass = (node) => {
    return gridOptions.api.getValue("isVisible", node)
}

如果datamodel数据发生更改,则只需调用
gridOptions.api.onFilterChanged()

作为将行高设置为0时4px问题的解决方法,我建议您也使用

gridOptions.getRowStyle = function(params) {
            //some filter
            return { 'display': 'none' };
        }

您可以为
isVisible
列创建一个筛选器。它隐藏了行,但提供了黑色空格。我还必须使用gridOptions.api.onFilterChanged()