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

Oracle APEX 21.1 动态动作实现模态框关闭后跳转父页异常问题

问题根因

你在动态动作(DA)的「执行服务器端代码」动作中调用apex_util.redirect_url无法生效,核心原因是:

  • 该动作本质是异步AJAX请求,服务端返回的重定向指令只会作用于这个AJAX请求本身,不会触发父页面(Page7所在的浏览器顶层窗口)跳转。
  • 另外你提供的PL/SQL代码存在变量名笔误:声明的变量是vc_Page7_URL,赋值时写为vcPage7_URL,不过这不是跳转失效的核心原因。
正确实现方案

推荐采用「前端跳转」的逻辑,配置步骤如下:

  1. 在Page12上新建动态动作,触发条件选择点击你的Close按钮
  2. 给动态动作添加两个执行动作,顺序如下:
  • 第一个动作(可选,仅当你需要做服务端校验时添加,不需要可以跳过):执行服务器端代码,不需要写业务逻辑,只需要在「要返回的页项」配置里添加P12_USERNAME,确保前端可以拿到最新的用户名参数
  • 第二个动作:执行JavaScript代码,代码如下:
// 关闭当前Page12的模态框
apex.navigation.dialog.close(true);
// 跳转至带参数的Page7页面
apex.navigation.redirect(
  apex.util.makeUrl({
    page: 7,
    items: ['P7_USERNAME'],
    values: [apex.items.P12_USERNAME.value]
  })
);
补充方案(如果你坚持要使用Dialog Closed触发)

如果你需要将DA配置在父页面Page7上,可以按如下方式配置:

  • 在Page7上新建动态动作,触发事件为Dialog Closed,触发源选择为打开Page12的按钮对应的区域
  • 动作选择执行JavaScript代码,从关闭的模态框中获取返回的P12_USERNAME值,再执行跳转即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:24:03