Oracle APEX 函数返回值通过按钮跳转新页面传值失败如何解决
Oracle APEX 页面跳转传值正确配置方案
问题核心原因是:链接构造器默认取页面项服务器端渲染时的初始值,如果P2120_SYMPTOM_ID是页面加载完成后通过前端函数动态赋值的,默认配置不会自动读取最新的客户端值,按以下两种方式配置即可解决:
方式1:直接调整链接构造器参数配置
- 打开按钮的链接构造器配置页,找到「设置参数(Set Items)」区域
- 第一列「名称」填写P2140页面对应接收参数的页面项,例如
P2140_SYMPTOM_ID - 第二列「值」不要直接选择
P2120_SYMPTOM_ID,而是填写APEX客户端替换变量语法&P2120_SYMPTOM_ID.(注意末尾的英文句号不能遗漏,这是替换变量的固定格式) - 可按需勾选「仅当值不为空时设置」选项
- 保存配置后即可生效,跳转时会自动读取页面项最新的客户端值
方式2:通过动态动作实现跳转(适合有额外校验逻辑的场景)
如果赋值后跳转前需要做合法性校验,推荐用动态动作实现更灵活:
- 把按钮的「动作」属性从「重定向到页面」修改为「由动态动作定义」
- 新建一个触发条件为「点击」的动态动作,动作类型选择「重定向到页面」
- 在重定向配置的参数设置区域,值栏同样填写
&P2120_SYMPTOM_ID.即可 - 若需要跳转前做校验,可以在重定向动作前新增一个「执行JavaScript代码」的动作,校验不通过时终止后续动作即可
额外注意:如果
P2120_SYMPTOM_ID是服务器端赋值的项,需要先确认该项的「值保护(Value Protection)」属性已关闭,或者赋值后已提交过页面,否则也可能出现取值为空的问题。
内容的提问来源于stack exchange,提问作者user13768246
相关产品推荐
相关产品推荐

