Ag-grid hiding rows

Jakub Siuda picture Jakub Siuda · Jun 30, 2017 · Viewed 11.6k times · Source

Is there any implemented functionality to conditionally hide rows?

I instantiate them like this:

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;

And then I provide this function to set the row height:

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

This is not a perfect solution, especially because if the grid ends with a row of height 0 it shows that row anyway (with the height of 4px or so)

Answer

Jonathan Naim picture Jonathan Naim · Aug 24, 2017

I think the best way would be to filter the data based on the property isVisible of the object.

An implementation could be:

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

if the datamodel data changes then you just need to call gridOptions.api.onFilterChanged()