在呈现行之前设置AG过滤器

时间:2020-10-19 11:24:28

标签: angular ag-grid

我正在使用AG Grid来显示客户端数据。在渲染任何数据之前,我需要应用一些预设过滤器。我正在通过setFilterModel事件在gridApi上调用gridReady来完成此操作,但是为时已晚。数据已经在此时渲染,因此在应用过滤器并再次删除行之前,我得到了所有简短显示的数据。

onGridReady(params) {
    this.gridOptions.api.sizeColumnsToFit();
    params.api.setFilterModel(this.filterModel);
}

在呈现任何数据之前,是否可以使用事件或访问网格API来设置过滤器模型的方法?

我创建了一个显示问题的Stackblitz演示。该演示仅显示了短暂的闪烁,但是使用自定义渲染器,更多列等刷新数据需要更长的时间。

https://stackblitz.com/edit/ag-grid-set-initial-filter-state-so-64426323?file=src/app/app.component.ts

谢谢

1 个答案:

答案 0 :(得分:0)

使用onFirstDataRendered()方法:

<ag-grid-angular
  (gridReady)="onGridReady($event)"
  (firstDataRendered)="onFirstDataRendered()">
</ag-grid-angular>

private gridApi;
private gridColumnApi;

onGridReady(params: AgGridEvent) {
    this.gridApi = params.api;
    this.gridColumnApi = params.columnApi;
}

onFirstDataRendered() {
    this.gridApi.setFilterModel(this.filterModel);
}