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