Angular:在agGrid中的动态列上设置默认排序的最佳方法

问题描述 投票:0回答:1

我正在使用agGrid,在此我们未明确定义列。我一辈子都无法弄清楚如何在我的其中一列上设置默认排序。在初始化时,我们这样做:

public ngOnInit(): void {
    this.gridOptions.defaultColDef = this.selectable ? this.getDefaultColumnsDefinition() : null;
    this.showSpinner = true;
    this.getAllRefreshJobs();
}

这是getDefaultColumnsDefinition()中的一列,我希望最初对其进行排序。我尝试过

var sortModel = [
    {colId: 'recordStartTime', sort: 'desc'}
];
this.gridOptions.api.setSortModel(sortModel);

this.getAllRefreshJobs()之后,但是我收到一个错误,指出api是未定义的。我想我把排序错误了。谁能帮忙?

angular typescript ag-grid
1个回答
0
投票

根据您所说的,您在初始化所有内容之前正在调用api。我不确定100%如何进行此设置,但是您应该在代码的onGridReady函数中进行这些调整。在onGridReady中,您可以执行以下操作:

HTML

<ag-grid-angular
    class="ag-theme-balham"
    [rowData]="data"
    [columnDefs]="columnDefs"
    (gridReady)="onGridReady($event)"></ag-grid-angular>

TypeScript

onGridReady(params): void {
    this.gridApi = params.api;
    this.gridColumnApi = params.columnApi;
    const sortModel = [
        {colId: 'recordStartTime', sort: 'desc'}
    ];
    this.gridApi.setSortModel(sortModel);
  }

这将公开当前的gridApi,并允许您进行任何初始化后的修改。

© www.soinside.com 2019 - 2024. All rights reserved.