在更新Ag-grid之后保持过滤器

Ich*_*aki 2 javascript angularjs ag-grid

我试图在更新行后保留网格的筛选器。

当我单击网格中的一行时,会打开一个对话框,在其中更新该行的信息,然后在网格的rowData中查找被单击的行,之后,我将rowData中的值更新为对应的记录。对话框,如下所示:

row[0].x = dg.x;
row[0].y = dg.y;
dg.gridOptions.rowData[index] = row[0];
dg.gridOptions.api.setRowData(newRows);
Run Code Online (Sandbox Code Playgroud)

但是之后,我松开了网格上的过滤器,进行了一些搜索,然后尝试了以下所有解决方案:

  1. gridOptions属性设置deltaRowDataModetrue

  2. filterParams: {apply: true, newRowsAction: 'keep'}

但是这些都不起作用。

我该如何解决?

Sam*_*meh 9

您可以将 filterParams newRowsAction 设置为保留,就像这样

dg.defaultColDef = { filterParams: { newRowsAction: 'keep'}} ;
Run Code Online (Sandbox Code Playgroud)

参考https://www.ag-grid.com/javascript-grid-filtering/index.php


Ati*_*eed 5

使用此方法(gridOptions.api.refreshCells())代替setRowData。或者,如果需要使用setRowData,请在调用之前保存过滤器模型,然后使用以下方法再次应用过滤器:

const model = this.gridOptions.api.getFilterModel();
//some code
this.gridOptions.api.setFilterModel(model);
Run Code Online (Sandbox Code Playgroud)