You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AG Grid SSRM时startRow与endRow为何会出现undefined?

AG Grid SSRM中startRow和endRow始终为undefined的问题

在使用AG Grid的Server-Side Row Model(SSRM)时,配置完成后每次获取到的startRow和endRow均为undefined。当前使用版本为27.2.0,升级到29.2.0可正常运行但现有依赖无法兼容,测试28.2.1版本时问题与27.2.0一致。

配置代码

数据源设置

onGridReady = (params: GridReadyEvent) => {
  this.gridApi = params.api;
  this.gridApi.setServerSideDatasource(this.createServerSideDatasource());
};

数据源实现

createServerSideDatasource(): IServerSideDatasource {
  return {
    getRows: (params) => {
      this.api.getTrades(params.request).subscribe({
        next: (resp) => {
          params.success({
            rowData: resp?.data ?? [],
            rowCount: resp?.totalRowCount,
          });
        },
        error: () => params.fail(),
      });
    },
  };
}

模板代码

<ag-grid-angular
  *ngIf="gridSettings.value && colDef; else loading"
  class="ag-theme-core-sdk ag-grid"
  [rowData]="rowData"
  [columnDefs]="colDef"
  [gridOptions]="gridSettings.value.gridOptions"
  [modules]="gridSettings.value.modules"
  (gridReady)="onGridReady($event)"
>
</ag-grid-angular>

Package.json依赖

{
    "@ag-grid-community/angular": "27.2.0",
    "@ag-grid-enterprise/all-modules": "~27.2.0",
}

解决方案

针对27.x/28.x版本的问题,可从以下几点排查修复:

  1. 移除模板中的[rowData]绑定
    SSRM模式下,AG Grid会通过配置的IServerSideDatasource获取数据,手动绑定rowData会强制Grid切换到客户端行模型,导致SSRM不生效,startRow和endRow自然不会被正确传入。需删除模板中的[rowData]="rowData"配置。

  2. 确保GridOptions正确启用SSRM
    检查gridSettings.value.gridOptions中是否配置了核心参数:

    rowModelType: 'serverSide',
    pagination: true,
    paginationPageSize: 50 // 按业务需求自定义每页行数
    

    27.x版本中必须显式设置rowModelType: 'serverSide'才能激活SSRM,否则Grid默认使用客户端行模型。

  3. 验证Modules包含SSRM模块
    即使使用@ag-grid-enterprise/all-modules,仍需确保gridSettings.value.modules数组中包含ServerSideRowModelModule:

    import { ServerSideRowModelModule } from '@ag-grid-community/server-side-row-model';
    // 模块数组中需包含该模块
    modules: [ServerSideRowModelModule, ...其他模块]
    

完成以上调整后,getRows方法中的params.request.startRow和params.request.endRow即可正确获取分页参数。

内容的提问来源于stack exchange,提问作者Aleksei Baryshnikov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:42:10