首页 > 解决方案 > 如何在 ag-Grid 中批量选择行

问题描述

有没有办法批量选择 ag-Grid 中的行?

具体来说,当我第一次将数据加载到我的网格中时,我还会从服务器获取最初应该选择的行列表。现在,我知道选择它们的唯一方法是:

this.state.gridApi.forEachNode((node) => {
  if (isInitiallySelected(node.data) {
    node.setSelected(true);
  }
});

但是,这会为每次迭代触发一个oneSelectionChange事件。这会在我的UI中引起一些问题,因为当我选择/去选择行时,我会显示反馈(A吐司)。

有没有办法在初始加载时告诉网格应该选择哪些行?

如果没有,有没有办法通过 API 批量选择行?

如果没有,有没有办法在打电话onSelectionChange时有条件地使事件静音node.setSelected()

标签: ag-gridag-grid-react

解决方案


ag-grid不提供可选事件发射。但是您可以创建一个hack用于内部处理

private initSelectionDone:boolean;

this.initSelectionDone = false;
this.state.gridApi.forEachNode((node) => {
  if (isInitiallySelected(node.data) {
    node.setSelected(true);
  }
});
this.initSelectionDone = true;

onSelectionChange(...){
    if(this.initSelectionDone){
        ...your logic here...
    }
}

推荐阅读