this.gridApi.refreshInfiniteCache()未清除selectedRows

时间:2018-09-24 05:55:55

标签: angular ag-grid ag-grid-ng2 ag-grid-react

我正在使用无限行模型,当我从网格中删除选定的行时,我正在调用刷新缓存,所以可以说我删除了选定的 id = 1 但在 refreshInfiniteCache()之后;新行通过 getRows()来自数据库,其 id = 2 ,并且所选行不会取消选择自动,如果我再次单击删除按钮,那么我在selectedData中获得两行。这是为什么?从 this.gridApi.getSelectedRows() getSelectedNodes()中,我得到了两行,前一行ID = 1,下一行是ID = 2的删除操作。应该只获得一行id = 2而不是id = 1我已经删除了这一行并刷新了缓存。请告诉我我想念什么吗?

$( '#myForm' ).each(function(){
    this.reset();
});

2 个答案:

答案 0 :(得分:0)

  

refreshInfiniteCache():将缓存中当前所有已加载的块标记为要重新加载。如果缓存中有10个块,则所有10个块都将标记为重新加载。 旧数据将继续显示,直到加载新数据为止。

因此,如果您要通过refreshInfiniteCache()替换所有网格数据,可以致电setRowData(rows)

  

setRowData(rows)将新行设置到网格中。

或者您需要在完成删除请求后update the grid data

params.api.updateRowData({remove:[...array of data-objects to remove...]});

答案 1 :(得分:0)

您可以在deleteRow()函数中尝试以下代码:

   gridApi.getSelectedNodes().forEach(node => {
      var id = node.data.id;
      var rowNode = gridApi.getRowNode(id);
      rowNode.setSelected(false);
    })