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

Oracle Apex中如何将JavaScript加载的页项值传递到模态页面

你遇到的问题根源是Oracle APEX中用$s()方法给页项赋值仅修改了客户端内存中的值,没有同步到APEX服务端会话状态,而默认的页面跳转传参会读取会话状态中的值,所以会出现页项显示正常但传参为空的情况。

解决方法

  • 方法1:赋值后同步更新会话状态
    在你现有JS代码的$s('P15_SOLICITUD_ID',respuesta.idSecuencia);后面追加会话状态更新代码:
// 同步客户端值到服务端会话状态
apex.item( "P15_SOLICITUD_ID" ).setSessionState().done(function() {
    // 可以在这里执行你的页面跳转逻辑,确保值已经同步完成
});

完成同步后再用默认的页面跳转传参配置就能正常拿到值。

  • 方法2:跳转时直接读取客户端值拼接参数
    如果不想修改会话状态,可以跳过默认的参数绑定逻辑,直接用JS拼接跳转地址:
// 示例:跳转至16页,将P15_SOLICITUD_ID的值传给16页的P16_SOLICITUD_ID项
const solicitudId = apex.item('P15_SOLICITUD_ID').getValue();
apex.navigation.redirect(`f?p=&APP_ID.:16:&APP_SESSION.::NO:16:P16_SOLICITUD_ID:${solicitudId}`);

这种方式不需要等待会话状态同步,执行效率更高。

  • 额外排查点
  1. 检查P15_SOLICITUD_ID的「会话状态保护」属性,确认没有设置为「不受限制」以外的选项,避免阻止值的同步
  2. 如果你是用按钮触发跳转,确认按钮的动作设置为「提交页面后跳转」,不要用直接重定向,否则未提交的客户端值不会被传递

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:24:01