微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle Apex:验证后区域未隐藏

如何解决Oracle Apex:验证后区域未隐藏

我有两个区域,第二个区域应该显示/隐藏字段是否为空。 我尝试了不同的方法,但验证后第二个区域没有隐藏。

  • 按钮验证字段:如果值存在,则在数据库搜索
  • 我的值存在填充隐藏字段(val_id)
  • 如果 val_id 为空,按钮中的动态动作隐藏区域

验证发生但区域没有隐藏:

enter image description here

解决方法

这就是 Apex 的工作原理:

  1. 呈现页面
  2. 用户操作屏幕上的数据
  3. 提交页面并执行验证/流程。

如果您有兴趣,文档会更详细地告诉您。动态操作允许您在阶段 (2) 中以声明方式添加功能,因为您需要访问 DOM。一旦页面被提交 (3),您就不能再操作 DOM,因此不能再使用动态操作。为了执行验证,您必须提交页面。 不幸的是,我没有 apex5.1 实例,但下面的逻辑应该适合您。

有两种方法可以解决您的问题

  1. 使用动态操作来执行搜索。设置一个隐藏的页面项目(例如,如果找到结果,则 P1_SHOW_DETAILS 为“Y”,如果没有找到则为“N”。然后使用动作显示/隐藏在 P1_SHOW_DETAILS 更改时创建第二个动态动作
  2. 不要使用动态操作/验证。使用页面项目P1_SHOW_DETAILS,它在提交和分支到同一页面后的页面进程中设置,并在分支中设置P1_SHOW_DETAILS 值。然后在该区域上放置一个服务器端条件,仅在 P1_SHOW_DETAILS = 'Y' 时才呈现。 在这两种情况下,您都必须找到另一种方式来显示“ESN 不存在”消息(您可以为此使用警报区域)。

附带说明:您有一个名为“VAL_ID”的页面项。使用命名约定 P_ 是一种很好的做法。页面项目在整个应用程序中必须是唯一的,如果您必须在查看“VAL_ID”的地方调试代码,您将如何知道要查看的页面。还有许多其他原因,但这超出了本问题的范围。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。