ag-grid angular 初始化后行顺序错误
ag-grid angular wrong row order after initialization
我在 angular 的 ag-grid 中遇到了奇怪的行为,不知道是我做错了什么还是一个错误。
用
初始化 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。
[编辑] 我注意到我只在初始化网格时遇到这个问题。当我的文章数组在网格已经可见后更新时,this.gridOptions.api.forEachNodeAfterFilterAndSort
以正确的顺序给我新项目。
这可能是使用 [domLayout]="'autoHeight'" 引起的错误。作为临时解决方案,请尝试将 [rowBuffer] 设置为某个较大的数字,例如 [rowBuffer]="10000"
我在 angular 的 ag-grid 中遇到了奇怪的行为,不知道是我做错了什么还是一个错误。
用
初始化 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。
[编辑] 我注意到我只在初始化网格时遇到这个问题。当我的文章数组在网格已经可见后更新时,this.gridOptions.api.forEachNodeAfterFilterAndSort
以正确的顺序给我新项目。
这可能是使用 [domLayout]="'autoHeight'" 引起的错误。作为临时解决方案,请尝试将 [rowBuffer] 设置为某个较大的数字,例如 [rowBuffer]="10000"