0

我的网格中有大约 2500 行,其中大约400行是选定的节点。所以我遍历所有节点,如果它们的 ID 在这 400 条记录的 ID 中,我希望它们被删除。所以我写了这个:

 allItems.forEach(node => {
     if(selectedItems.includes(node.data.id))
       node.setSelected(false);
   })

它可以工作,但一次只删除了27行,而不是删除所有 400 行。所以我必须再次单击我的按钮,它会删除接下来的 27 条记录等。

为什么会这样?如何更改它以一次删除所有这 400 行?

4

2 回答 2

0

您的示例代码非常有限。但是为什么不使用网格的内部api来查询选定的节点呢?

this.gridApi.getSelectedNodes().forEach(node => {
  node.setSelected(false);
});
于 2021-09-08T07:04:51.650 回答
0

尝试这个:-

选择所有行并删除所有选定的行:-

  deletedAllSelectedRows() {
          this.gridApi.selectAll(); //select all rows
          const sel = this.gridApi.getSelectedRows();
          this.gridApi.applyTransaction({remove: sel});
      }

注意:- 需要 23.1.0 版本applyTransaction。对于较低版本使用 this.gridApi.updateRowData({remove: sel})

于 2021-09-13T10:58:43.270 回答