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

关于Ag Grid Enterprise分组展开时数据请求及dataSource配置的问询

Ag Grid分组展开时配置动态数据请求的实现方案

我来帮你梳理下Ag Grid分组展开时如何配置数据源发起新数据请求的具体实现,这部分确实需要结合Enterprise级别的服务端数据源接口来完成,官方文档可能对细节的示例说明不够直观,下面我一步步拆解给你:

核心前提

首先确保你的Ag Grid是Enterprise版本,因为我们要用到的serverSide行模型是Enterprise专属特性,只有这个模型支持分组展开时的动态数据拉取。

关键配置步骤

1. 设置Grid的行模型类型

在gridOptions里指定rowModelType为'serverSide',这是启用服务端数据加载的基础:

const gridOptions = {
  rowModelType: 'serverSide',
  // 其他配置...
};

2. 实现ServerSideDatasource

你需要自定义一个数据源对象,核心是实现getRows方法——当用户展开分组时,Ag Grid会自动调用这个方法,并传入包含分组信息的请求参数。

重点关注params.request对象里的这两个关键属性:

  • groupKeys: 数组类型,代表当前展开的分组路径,比如展开Europe > France时,值为['Europe', 'France']
  • groups: 数组类型,包含分组列的配置信息,比如[{colId: 'continent'}, {colId: 'country'}]

下面是完整的数据源实现示例:

const customDatasource = {
  getRows(params) {
    // 提取分组展开的核心参数
    const { groupKeys, startRow, endRow, sortModel, filterModel } = params.request;

    // 构建后端需要的请求参数
    const apiParams = {
      // 传递分组路径,让后端返回对应分组下的子数据
      groupPath: groupKeys,
      // 分页参数(如果需要分页加载子数据)
      pageStart: startRow,
      pageEnd: endRow,
      // 可选:传递排序、过滤参数
      sort: sortModel,
      filter: filterModel
    };

    // 发起异步请求(这里用fetch示例,你也可以用axios等)
    fetch('/your-api-endpoint', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(apiParams)
    })
    .then(res => res.json())
    .then(response => {
      // 把获取到的数据返回给Ag Grid
      // 第一个参数是当前页的行数据,第二个是总条数(如果后端返回的话)
      params.successCallback(response.rows, response.totalRowCount);
    })
    .catch(err => {
      console.error('加载分组数据失败:', err);
      // 请求失败时调用failCallback告知Grid
      params.failCallback();
    });
  }
};

// 将数据源绑定到GridOptions
gridOptions.serverSideDatasource = customDatasource;

3. 配置分组列

在columnDefs里指定哪些列作为分组列,通过rowGroup: true标记:

gridOptions.columnDefs = [
  { field: 'continent', rowGroup: true, hide: true }, // 第一层分组
  { field: 'country', rowGroup: true, hide: true },    // 第二层分组
  { field: 'city' },
  { field: 'population' }
];

额外注意事项

  • 后端适配: 你的后端接口需要能够接收groupPath参数,并返回对应分组下的子数据,比如当groupPath为['Europe']时,返回欧洲所有国家的数据。
  • 多层分组: 嵌套多层分组时,groupKeys会按层级依次添加,比如第三层展开时,数组会包含前两层的分组值。
  • 默认展开: 如果需要默认展开某些分组,可以设置groupDefaultExpanded为对应层级(比如1代表展开第一层分组),此时Grid会自动触发对应分组的getRows请求。

内容的提问来源于stack exchange,提问作者Tom Bird

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:08:17