AG-GRID服务端总行数显示异常,手动设置无效求助
AG-Grid服务端总行数显示异常解决方案
核心问题在于你同时启用了服务端数据源模式和本地rowData绑定,AG-Grid会优先取本地rowData的长度作为总行数,忽略success回调传入的rowCount。以下是具体修复步骤:
1. 移除模板中的本地rowData绑定
服务端模式下,数据由自定义的IServerSideDatasource提供,不需要在模板中绑定[rowData],直接删除该属性:
<ag-grid-angular class="ag-theme-balham grid" [gridOptions]="gridOptions" [components]="components" [pagination]="paginationService.defaultPaginationModel.enabled" [paginationPageSize]="paginationService.defaultPaginationModel.pageSize" (firstDataRendered)="onFirstDataRendered($event)" (cellClicked)="onCellClicked($event)" ></ag-grid-angular>
2. 修复订阅泄漏问题
当前fetchRows方法每次调用都会新增一个订阅,可能导致重复触发success回调,用take(1)确保只取一次数据后自动取消订阅:
async fetchRows(options: Partial<IGetServerSideOptions>) { this.store.select(MtInsightsOverviewCustomPageState.gridItems$) .pipe(take(1)) .subscribe(data => { options.params.success({ rowData: data, rowCount: 80 }); }); }
3. 确认gridOptions开启服务端模式
检查你的gridOptions是否明确配置了服务端模式,没有的话添加以下配置:
this.gridOptions = { serverSideMode: 'serverSide', // 其他已有配置... };
完成以上修改后,AG-Grid会完全基于你在success回调中传入的rowCount计算分页和总行数,不再受本地数据长度影响。
内容的提问来源于stack exchange,提问作者Uland Nimblehoof
相关产品推荐
相关产品推荐

