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

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

row[0].x = dg.x;
row[0].y = dg.y;
dg.gridOptions.rowData[index] = row[0];
dg.gridOptions.api.setRowData(newRows);

但是之后,我松开了网格上的过滤器,进行了一些搜索,然后尝试了以下所有解决方案:
  • gridOptions属性deltaRowDataMode设置为true
  • filterParams: {apply: true, newRowsAction: 'keep'}

  • 但是这些都不起作用。

    我该如何解决?

    最佳答案

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

    const model = this.gridOptions.api.getFilterModel();
    //some code
    this.gridOptions.api.setFilterModel(model);
    

    10-07 16:25