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

AG-Grid:已选中且禁用的行在getSelectedNodes()中仍显示可选

AG Grid 行选中与selectable属性疑问

我按照AG Grid文档实现了行选中并禁用的渲染效果,显示正常,但调用getSelectedNodes()时,发现那些被禁用的节点的selectable属性实际仍返回true,和我预期的false不符。请问这是Bug还是操作有误?我希望能通过筛选selectable属性仅获取用户手动选中的节点。


这不是Bug,是对selectable属性的作用理解存在偏差:

  • selectable是用来控制节点是否允许用户交互选中/取消选中的配置,它不会自动修改节点选中状态的属性值。当设置节点不可选时,只是禁用了用户的交互操作,但节点本身的selectable初始值不会被AG Grid自动变更。

要实现筛选用户手动选中节点的需求,可以按以下方式处理:

  1. 给那些预设选中且禁用的节点添加自定义标识(比如isPreSelected: true)
  2. 调用getSelectedNodes()后,通过该标识过滤:
const allSelectedNodes = gridApi.getSelectedNodes();
const userSelectedNodes = allSelectedNodes.filter(node => !node.data.isPreSelected);

或者,如果你是通过API强制设置选中状态的,可在设置时记录这些强制选中的节点,后续筛选时排除即可。

另外,确认你正确配置了不可选逻辑,通常是在列定义的checkboxSelection回调中设置:

columnDefs: [
  {
    headerName: '选择',
    checkboxSelection: params => !params.data.isDisabled,
    // 其他列配置
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:05:42