我有一个带有过滤选项的ag-Grid。
如何在不使用forEachNodeAfterFilter
回调的情况下获取已过滤的行数?
我想只在有过滤行时启用按钮,并且我不想每次都在后台执行foreach循环。
答案 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()
过滤事件后的实际行数是显示的行数。