如何在 ag-grid 中获取过滤行?

How to get filtered rows in ag-grid?

我有一个带过滤选项的 ag-Grid

如何在ag-Grid中获取过滤后的行(不是选中的行)?

您可以为此使用 forEachNodeAfterFilter(callback) api 方法。

有关所有可用的 API 调用,包括各种 forEachXXX 方法,请参阅 https://www.ag-grid.com/javascript-grid-api

这花了我很长时间,所以我在这里发帖。使用 onFilterChanged() 访问过滤后的行,或过滤+选择的行。传递给 onFilterChanged() 的事件可以像这样使用(Typescript React 中的示例)

onFilterChanged = ev => {
  if (ev?.api?.rowModel?.rowsToDisplay) {
    this.setState({ selectedRows: ev?.api?.rowModel?.rowsToDisplay.filter(node => node.isSelected()) });
  }
};

基于@sean-landsman 的回答,下面是如何使用 forEachNodeAfterFilter(callback) 方法的示例:

    let rowData = [];
    gridApi.forEachNodeAfterFilter(node => {
      rowData.push(node.data);
    });