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

Ag Grid技术问题:如何取消选中已被过滤隐藏的行

解决Ag Grid Server-Side Row Model过滤后取消隐藏行选中的问题

1. 判断行是否被过滤隐藏的方法

完全可以通过行节点的rowNode.filtered属性判断该行是否被当前过滤规则隐藏:

  • 当属性值为true时,该行已被过滤隐藏
  • 当属性值为false时,该行在当前过滤结果中可见

2. 实现取消选中隐藏行的具体操作

在过滤条件变化的时机(比如filterChanged事件触发时),执行以下步骤即可:

  • 调用gridApi.getSelectedNodes()获取所有处于选中状态的行节点
  • 遍历这些节点,检查filtered属性
  • 对filtered为true的节点,调用gridApi.deselectNode(node)取消其选中状态

示例代码:

// 监听过滤变化事件
gridApi.addEventListener('filterChanged', () => {
  const selectedNodes = gridApi.getSelectedNodes();
  selectedNodes.forEach(node => {
    if (node.filtered) {
      gridApi.deselectNode(node);
    }
  });
});

3. 注意事项

  • Server-Side Row Model模式下,只有已加载到客户端的行节点会包含filtered属性,未加载的行不会出现在选中集合中,无需额外处理
  • 若要区分过滤隐藏和列隐藏,可额外检查rowNode.hidden属性,二者属于不同的行隐藏状态

内容的提问来源于stack exchange,提问作者Ryan Pierce Williams

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:52:00