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

APEX 22.1:点击交互式网格行设置页面项值失败求助

问题排查与解决方法

核心问题分析

你的代码返回undefined主要有两个原因:

  1. $v("CURRENT_ROW_INDEX")未正确获取选中行的有效标识:IG的model.getValue()方法第一个参数需要的是行的唯一ID对象,而非视觉行索引;如果CURRENT_ROW_INDEX页面项未初始化或未同步更新,它的值为空,直接导致取值失败。
  2. 未利用Selection change事件自带的上下文:该事件触发时,动态动作本身已经能直接获取选中行数据,无需手动依赖额外页面项。

解决方法(推荐方案)

修改动态动作的Set Value逻辑,直接通过IG的API获取选中行数据:

  1. 打开目标动态动作,保持触发事件为Selection change [Interactive grid],确保选择器指向IG的静态IDIG_GRID。
  2. 动作类型选择Set Value,将类型改为JavaScript Expression,替换为以下代码:
var igGrid = apex.region("IG_GRID").widget().interactiveGrid("getViews", "grid");
var selectedRows = igGrid.model.getSelectedRecords();
// 仅当有选中行时返回OS_TIP值,否则清空页面项
return selectedRows.length > 0 ? igGrid.model.getValue(selectedRows[0], "OS_TIP") : "";
  1. 在Set Value的目标项中选择P660_LOV_OS_TIP,保存后测试即可。

额外排查步骤

如果修改后仍不生效,检查以下几点:

  • 确认IG的静态ID确实是IG_GRID:APEX静态ID区分大小写,核对页面设计器中IG的属性设置。
  • 确认OS_TIP列名正确:IG的model.getValue()使用的是列的数据库列名(基于SQL的IG)或列的静态ID(手动定义列),避免拼写错误。
  • 控制台验证API有效性:打开浏览器开发者工具控制台,执行apex.region("IG_GRID").widget().interactiveGrid("getViews", "grid").model.getSelectedRecords(),确认能返回选中行对象数组,排除IG加载或初始化问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:14:57