I have an ag-Grid with filtering option.
How to get the filtered rows (not the selected) in ag-Grid?
I have an ag-Grid with filtering option.
How to get the filtered rows (not the selected) in ag-Grid?
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);
});
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 getSelectedNodes()
and filter() them for filtering hidden rows.
this.gridApi.getSelectedNodes().filter(node => node.displayed).map(node => node.data)
There is selectAllFiltered() function now:
https://www.ag-grid.com/angular-data-grid/grid-api/?#reference-selection-selectAllFiltered