AG Grid行分组多列展示时如何仅为叶子节点显示选择复选框
AG Grid多列分组模式仅叶子节点渲染复选框的原生实现方案
可以通过AG Grid原生的回调配置实现该需求,无需自定义渲染器或CSS适配,多列分组模式下可正常生效。
具体配置方法如下:
- 不要将列定义中的
checkboxSelection属性写死为布尔值,改为传入回调函数,通过入参params中的行节点属性判断是否为叶子节点,动态决定是否渲染复选框 - 若需要实现选中叶子节点时上级分组自动同步半选/全选状态,可在
gridOptions中开启groupSelectsChildren: true配置,交互逻辑由AG Grid自动处理,无需额外开发
参考配置示例:
const gridOptions = { // 保持你的多列分组配置不变 groupDisplayType: 'multipleColumns', rowSelection: 'multiple', // 开启后自动同步分组与子节点的选中状态 groupSelectsChildren: true, columnDefs: [ { field: 'athlete', // 回调仅对叶子节点返回true,渲染复选框 checkboxSelection: (params) => { // params.node.group为true时是分组节点,不渲染复选框 return !params.node.group; }, // 不需要表头全选可关闭该配置 headerCheckboxSelection: false, // 其余该列原有配置保持不变 }, // 其余列定义保持不变 ] // 其余grid配置保持不变 }
该配置不依赖分组的展示形式,无论使用单列分组还是多列分组都可正常生效,完全符合需求:仅可见的叶子节点展示复选框,所有非叶子的分组行(含折叠、展开状态)都不会渲染复选框。
内容的提问来源于stack exchange,提问作者Richard Misiak
相关产品推荐
相关产品推荐

