Oracle APEX交互式网格无法传递行ID至页面项求助
Oracle APEX交互式网格弹出LOV修改时传递行ID问题解决
问题根源
原代码依赖getSelectedRecords()获取行,但修改弹出LOV列时,当前操作的行不一定处于选中状态,导致无法正确获取行ID;同时手动拼接URL可能存在编码或格式问题。
修复方案
使用网格的当前上下文获取编辑行,并用官方推荐的apex.util.redirectTo()构建跳转链接:
// 替换为你的交互式网格区域静态ID var igStaticId = "your_grid_region_static_id"; var igView = apex.region(igStaticId).widget().interactiveGrid("getViews", "grid"); var igModel = igView.model; // 获取当前正在编辑的行记录 var currentRecord = igView.getCurrentRecord(); if (currentRecord) { // 替换为IG中存储主键的列名(例如你的ROW_ID列) var rowId = igModel.getValue(currentRecord, "ROW_ID"); // 跳转并传递参数,自动处理URL编码 apex.util.redirectTo({ pageId: 82, set: { P82_ID: rowId } }); } else { alert("无法获取当前行信息"); }
关键注意事项
- 确认
your_grid_region_static_id是交互式网格区域的实际静态ID(在区域属性中查看) - 确保
"ROW_ID"是IG中包含主键值的列名(需在网格中存在,可设为隐藏列) - 目标页面的
P82_ID页面项需配置为允许接收URL参数(在项属性的"来源"中设置)
排查技巧
在代码中加入console.log(rowId),打开浏览器开发者工具的控制台,查看是否成功获取到行ID值,以此排查是获取ID失败还是跳转逻辑问题。
内容的提问来源于stack exchange,提问作者user27791528
相关产品推荐
相关产品推荐

