初始化aggrid后
this.gridOptions = {
enableSorting: true,
rowHeight: 50,
suppressDragLeaveHidesColumns: true,
enableColResize: true,
domLayout: 'autoHeight',
rowSelection: 'single',
};
<ag-grid-angular
#agGrid
[rowData]="articleArray"
[gridOptions]="gridOptions"
(cellClicked)="showDetails($event)"
(gridReady)="onGridReady()"
(modelUpdated)="onModelUpdated()"
(gridSizeChanged)="sizeToFit()"
></ag-grid-angular>
并通过以下方式获得网格中行的结果顺序:
updateArticleOrder() {
const result: string[] = [];
this.gridOptions.api.forEachNodeAfterFilterAndSort(rowNode => result.push(rowNode.data.id));
this.articleOrderChanged$.emit(result);
}
我注意到顺序与中使用的原始输入不同
[rowData]="articleArray"
.准确地说,11个项目被移到了网格的底部,网格从原始索引11开始。为什么会这样?我该如何避免?排序后
updateArticleOrder()
onModelUpdated()
我再次获得正确的顺序,单击第一行时显示索引0。
[编辑]
我注意到只有在初始化网格时才出现这个问题。当我的articleArray在网格已经可见后更新时,
this.gridOptions.api.forEachNodeAfterFilterAndSort