如何获取ag-Grid中已过滤的行数?

时间:2017-04-21 12:41:08

标签: javascript angularjs ag-grid

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

如何在不使用forEachNodeAfterFilter回调的情况下获取已过滤的行数?

我想只在有过滤行时启用按钮,并且我不想每次都在后台执行foreach循环。

4 个答案:

答案 0 :(得分:4)

gridOptions.api.getModel().rootNode.childrenAfterFilter.length

您应该查看rootNode下您可以使用的其他内容,还有一些可能对您有用的阵列

答案 1 :(得分:2)

onFilterChanged(event) { 
 console.log(gridOptions.api.getDisplayedRowCount());
}

在控制台中,计数应为已过滤的行。

答案 2 :(得分:0)

使用onFilterChanged()访问已过滤的行或已过滤+选定的行。传递给onFilterChanged()的事件可以像这样使用(Typescript React中的示例)

(如果您需要过滤数量,请使用ev.api.rowModel.rowsToDisplay.length

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

答案 3 :(得分:-2)

您可能正在寻找的是:

gridOptions.api.getDisplayedRowCount()

过滤事件后的实际行数是显示的行数。