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

Apex中如何通过按钮选中Interactive Grid特定行或全部行?

问题描述

页面中有一个Interactive Grid类型的区域,通过行选择器生成复选框,表格包含ColumnA、ColumnB、ColumnC三列,数据如下:

ColumnAColumnBColumnC
1Hello123
2Position1234
3Accept567
4Position778
5Accept321

已创建两个按钮,需要实现以下功能:

  • 点击「Position」按钮:自动选中ColumnB值为「Position」的所有行的复选框,预期效果如下:
CheckboxColumnAColumnBColumnC
1Hello123
X2Position1234
3Accept567
X4Position778
5Accept321
  • 点击「Accept」按钮:选中所有行的复选框。

尝试过以下代码,但仅能实现全选,无法筛选特定行:

apex.region("pos").widget().interactiveGrid("getViews", "grid").view$.grid("selectAll");apex.message.showPageSuccess( "All Rows selected successfully." );}
解决方案

1. 「Position」按钮的实现代码

通过遍历Interactive Grid的所有行模型,判断ColumnB的值后选中符合条件的行:

// 替换为你的Interactive Grid区域静态ID
const igRegionId = "pos";
const ig = apex.region(igRegionId).widget().interactiveGrid("getViews", "grid");

// 先清空当前选中状态,避免叠加选中
ig.view$.grid("clearSelection");

// 获取所有行的数据模型
const rows = ig.model.getRows();

// 遍历行,筛选并选中ColumnB为"Position"的行
rows.forEach(row => {
    // 替换为ColumnB列的静态ID(需与页面配置一致)
    const columnBValue = ig.model.getValue(row, "COLUMNB");
    if (columnBValue === "Position") {
        ig.view$.grid("select", row);
    }
});

apex.message.showPageSuccess("已选中所有ColumnB为Position的行");

2. 「Accept」按钮的实现代码

修正你原有的代码(移除多余的闭合括号),即可实现全选:

// 替换为你的Interactive Grid区域静态ID
const igRegionId = "pos";
const ig = apex.region(igRegionId).widget().interactiveGrid("getViews", "grid");

ig.view$.grid("selectAll");
apex.message.showPageSuccess("所有行已成功选中");

注意事项

  • 确保igRegionId替换为你页面中Interactive Grid区域的静态ID(你的示例中用的是pos)。
  • COLUMNB是ColumnB列的静态ID,需与你在Apex中配置列时设置的静态ID一致,否则无法正确获取列值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:10:45