How to get filtered rows in ag-grid?
This took me forever so I'm posting here. Use onFilterChanged()
to access the filtered rows, or the filtered + selected rows. The event passed to onFilterChanged()
can be used like so (example in Typescript React)
onFilterChanged = ev => {
if (ev?.api?.rowModel?.rowsToDisplay) {
this.setState({ selectedRows: ev?.api?.rowModel?.rowsToDisplay.filter(node => node.isSelected()) });
}
};
You can use the forEachNodeAfterFilter(callback) api method for this.
See https://www.ag-grid.com/javascript-grid-api for all available API calls, including the various forEachXXX methods.
Building off @sean-landsman's answer, here's an example of how to use the forEachNodeAfterFilter(callback)
method:
let rowData = [];
gridApi.forEachNodeAfterFilter(node => {
rowData.push(node.data);
});