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

咨询:Oracle APEX中不使用JavaScript实现带条件确认的重置按钮

咨询:Oracle APEX中不使用JavaScript实现带条件确认的重置按钮

嘿,这个需求绝对能搞定!不用JavaScript的话,咱们完全可以靠Oracle APEX自带的组件和内置功能来实现,我给你把步骤拆得明明白白:

  • 第一步:先建个隐藏页面项跟踪修改状态
    创建一个隐藏类型的页面项,比如P1002_IS_CHANGED,保存类型选仅会话状态。然后给它加个计算:

    • 计算类型:PL/SQL表达式
    • 计算值:CASE WHEN APEX_UTIL.GET_CHANGED_COLUMNS IS NOT NULL THEN 'Y' ELSE 'N' END
    • 计算时机:每次请求
      这个项会自动检测表单里所有开启了保存会话状态的字段,只要有修改就设为'Y',没修改就是'N',完美帮咱们判断状态。
  • 第二步:创建两个重置按钮(切换显示)
    咱们需要两个功能不同的按钮,让它们根据P1002_IS_CHANGED的值自动切换显示,用户看起来就像只有一个按钮:

    1. 直接重置按钮(无确认)
      • 按钮名称:BTN_RESET_DIRECT
      • 行为:重置
      • 显示条件:服务器端条件,表达式为P1002_IS_CHANGED = 'N'
      • 样式和位置:和你想要的重置按钮保持一致
    2. 带确认的重置按钮
      • 按钮名称:BTN_RESET_CONFIRM
      • 行为:提交页面
      • 请求:RESET_FORM_CONFIRMED
      • 提交时确认:勾选,确认消息填&P1002_CONF_MESSAGE.(这样会直接引用你设置的确认文本项)
      • 显示条件:服务器端条件,表达式为P1002_IS_CHANGED = 'Y'
      • 样式和位置:和第一个按钮完全相同,确保用户看不到切换痕迹
  • 第三步:添加重置分支
    创建一个页面分支,处理带确认按钮的提交请求:

    • 分支类型:重置页面状态
    • 当请求等于:RESET_FORM_CONFIRMED
    • 分支顺序:设为10(确保优先执行)

最后给你个关键提醒:所有需要被检测修改状态的表单字段,一定要把保存会话状态属性设为「是」,不然APEX_UTIL.GET_CHANGED_COLUMNS会检测不到它们的修改哦。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 08:58:03