Oracle APEX如何关闭第二个模态对话框并返回第一个且不刷新页面
在Oracle APEX中实现嵌套模态对话框的平滑关闭跳转
方法一:用APEX内置按钮属性直接配置(推荐)
这是最省心的方式,不需要写任何代码:
- 打开第二个模态对话框页面的「取消」按钮编辑页
- 在行为区域:
- 把「动作」设为「关闭对话框」
- 「对话框关闭后」选择「不执行任何操作」(关键:第一个对话框只是被第二个层级覆盖,关闭第二个后会自动显示,不需要额外刷新)
- 务必把「提交页面」设为「否」,防止页面刷新
方法二:JavaScript手动控制(适合需要自定义逻辑的场景)
如果需要在关闭时加额外逻辑,比如清理表单数据,可以用动态动作+JS:
- 编辑第二个对话框的「取消」按钮,把「动作」设为「定义动态动作」
- 创建一个触发条件为「点击」的动态动作,动作类型选「执行JavaScript代码」,输入:
// 关闭当前第二个模态对话框 apex.navigation.dialog.close(true); // 无需额外操作,第一个对话框会自动回到前台 - 同样确保按钮的「提交页面」属性为「否」
关键注意事项
- 打开第二个对话框时,第一个对话框的打开动作要选「打开对话框」,不要选「关闭当前对话框后打开」,否则第一个对话框会被销毁,无法自动返回
- 两个对话框都要使用APEX官方的「模态对话框」页面类型,不要用自定义的HTML弹窗,否则层级和关闭逻辑会出问题
内容的提问来源于stack exchange,提问作者Henriquez
相关产品推荐
相关产品推荐

