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

在React.js的Ag-Grid中如何设置行默认选中状态?

实现步骤

1. 绑定Grid API实例

首先给AgGridReact组件添加onGridReady回调,将Grid操作实例存入组件状态,方便后续调用行选择方法:

// 给AgGridReact新增属性
<AgGridReact
  // 原有属性保持不变
  onGridReady={this.handleGridReady}
>
</AgGridReact>

// 组件内新增回调方法
handleGridReady = (params) => {
  this.setState({
    gridApi: params.api,
    columnApi: params.columnApi
  }, () => {
    // 实例初始化完成后执行默认选中逻辑
    this.setDefaultSelectedRows()
  })
}

2. 实现默认选中逻辑

根据你的业务场景二选一即可:

  • 场景1:已知要选中的行的唯一标识列表(比如凭证编码)
setDefaultSelectedRows = () => {
  const { gridApi } = this.state
  // 替换为你实际需要默认选中的行标识列表
  const targetVoucherCodes = ['VC001', 'VC005', 'VC012']

  gridApi.forEachNode(rowNode => {
    const currentCode = rowNode.data.ApplicationVoucher.Voucher.VoucherCode
    if (targetVoucherCodes.includes(currentCode)) {
      // 第二个参数设为false不会触发onSelectionChanged回调,需要触发可改为true
      rowNode.setSelected(true, false)
    }
  })
}
  • 场景2:已提前筛选好要选中的行数据数组
setDefaultSelectedRows = () => {
  const { gridApi, documentList } = this.state
  // 替换为你的筛选条件
  const needSelectedRows = documentList.filter(item => item.ApplicationVoucher.IsDefaultSelected)

  gridApi.setSelectedNodes(needSelectedRows, true)
}

注意事项

如果你的表格行数据documentList是异步从接口获取的,不要在onGridReady中调用选中方法,改为在接口请求成功、更新documentList到state的回调中执行选中逻辑,避免行数据未加载完成导致遍历不到节点的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:15:06