我正在使用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是未定义的。我想我把排序错误了。谁能帮忙?
根据您所说的,您在初始化所有内容之前正在调用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,并允许您进行任何初始化后的修改。