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

如何在ag-grid的onRowSelected事件中更新子网格复选框状态

在AG Grid主从网格(非分组模式)中同步父行与子网格复选框状态

当然可以实现,核心是通过父网格的onRowSelected事件获取对应子网格的API实例,再调用子网格的选择API来同步状态,具体步骤如下:

1. 获取子网格的API实例

在父网格的onRowSelected事件回调中,通过父行节点的id,调用父网格API的getDetailGridInfo(node.id)方法,就能拿到对应子网格的信息对象,从中提取子网格的API。

2. 同步子网格复选框状态

根据父行的选中状态,调用子网格API的选择方法:

  • 父行选中时,调用selectAll()选中子网格所有行
  • 父行取消选中时,调用deselectAll()取消子网格所有行选中

代码示例(React环境)

const onRowSelected = (event) => {
  const { node, api: parentGridApi } = event;
  // 获取当前父行对应的子网格信息
  const detailGridInfo = parentGridApi.getDetailGridInfo(node.id);
  if (!detailGridInfo) return;

  const childGridApi = detailGridInfo.api;
  // 同步选中状态
  if (node.selected) {
    childGridApi.selectAll();
  } else {
    childGridApi.deselectAll();
  }
};

注意事项

  • 确保子网格的列配置中开启了复选框选择:在子网格的列定义里添加checkboxSelection: true
  • 如果需要自定义子行的选中规则(比如部分行不可选),可以遍历子网格数据,调用childGridApi.setSelected(rowData, isSelected)来单独设置每行状态
  • 若父网格存在批量选择(比如全选框),需要在onSelectionChanged事件中做批量处理,遍历所有选中的父行,同步各自的子网格状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 20:07:37