Oracle Apex需求:点击Deactivate按钮时不关闭对话框
解决Dialog中Deactivate按钮点击后不关闭的问题
问题背景
我有一个带三个按钮的弹出对话框:Update、Update to null、Deactivate。原本三个按钮点击后都会关闭对话框:
- Update:提交文本项到表格后关闭
- Update to null:将项值设为null后关闭
- Deactivate:把
:P1_Checkbox设为'N'(停用复选框)后关闭
现在要求只有Update和Update to null点击后关闭对话框,Deactivate点击后保持对话框打开。当前Deactivate按钮属性如下:
Action: Submit Page Execute Validations: yes
处理流程末尾还有统一的“关闭对话框”步骤。
具体解决方案
1. 给“关闭对话框”步骤加条件判断
直接修改流程里的“关闭对话框”步骤,只让它在点击Update或Update to null时执行:
- 找到这个步骤的服务器端条件,设置为:
注意把:REQUEST = 'UPDATE_BUTTON_NAME' OR :REQUEST = 'UPDATE_NULL_BUTTON_NAME'UPDATE_BUTTON_NAME和UPDATE_NULL_BUTTON_NAME换成对应按钮实际的Name属性值(APEX里按钮的Name会作为:REQUEST的值传递)。
2. 检查按钮的客户端行为(可选)
如果调整流程后Deactivate还是会关对话框,检查按钮的客户端设置:
- 看看Deactivate按钮有没有勾选类似
Close Dialog的属性(部分对话框组件会自带这个选项),如果有就取消勾选 - 要是按钮绑定了动态动作,找到点击事件里的关闭对话框动作,给它加条件:排除Deactivate按钮的请求
核心逻辑
利用:REQUEST变量识别当前触发提交的按钮,只让指定按钮触发关闭对话框的操作,Deactivate的流程只执行设置:P1_Checkbox为'N'的逻辑,不执行关闭步骤。
内容的提问来源于stack exchange,提问作者Velocity
相关产品推荐
相关产品推荐

