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)
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()
As a workaround for the 4px issue when setting row height to 0, i suggest you also use
gridOptions.getRowStyle = function(params) {
//some filter
return { 'display': 'none' };
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With