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

如何在ag-grid中通过rowData数据模型属性指定RowNode.id?

如何用rowData属性设置AG Grid的RowNode.id

我之前也踩过这个坑!AG Grid文档确实提到了这个功能,但具体实现方式讲得太模糊。其实搞定这个需求很简单,只需要在Grid配置里加一个getRowId回调函数,直接指定用rowData里的某个字段作为RowNode的id就行。

具体操作方法

  • 在你的gridOptions中添加getRowId函数,这个函数会接收一个参数对象,其中params.data就是当前行的原始数据对象
  • 从params.data里取出你想用来做RowNode.id的属性值,把它返回即可

代码示例

假设你的rowData里每个对象都有一个唯一的userId字段,想用它来作为RowNode.id:

const gridOptions = {
  columnDefs: [
    { field: 'userId' },
    { field: 'userName' },
    { field: 'role' }
  ],
  // 核心配置就在这里
  getRowId: (params) => params.data.userId,
  rowData: [
    { userId: 'U001', userName: 'Alice', role: 'Admin' },
    { userId: 'U002', userName: 'Bob', role: 'Editor' }
  ]
};

这么做的好处

  • 用业务数据里的唯一id代替AG Grid默认的行索引,当你对rowData做增删、排序、过滤操作时,RowNode.id不会跟着变动,能更稳定地定位行节点
  • 之后你可以通过gridApi.getRowNode('U001')直接获取对应的行节点,方便做行选中、数据更新等操作

注意事项

  • 一定要保证返回的id是全局唯一的,否则AG Grid会出现行识别混乱的问题,比如重复行、操作失效等
  • 如果不配置getRowId,AG Grid会默认用行的索引作为RowNode.id,但这种方式在数据变动时非常不可靠

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:31:03