为什么在 Oracle APEX 中将服务器端条件作为 PL/SQL 表达式给出后按钮消失了?

Why button disappeared after giving server-side conditions as PL/SQL expression in Oracle APEX?

我需要检查两个页面项值是否相等,然后才重定向到我的 Oracle Apex 应用程序中的另一个页面。我选择这样的服务器端条件:

但是为什么我的按钮从页面上消失了?

没关系。显然,P2_QR_RESULTP2_TAG_IDENTIFIERS 的值不相等,因此页面没有呈现按钮,因此用户不可能转到另一个页面。这就是你想要的,对吧?

因为,如果值 相等,您会看到该按钮,您可以单击它并转到另一个页面。


如果您想看到按钮,但在按下后让它“什么都不做”,那么

  • 让它提交页面
  • 创建一个分支,它将带您到目标页面
  • 将其(分支的)server-side条件设置为
    • 运行 当那个按钮被按下时

    • 类型:函数体:

      return :P2_QR_RESULT = :P2_TAG_IDENTIFIER;
      

请注意,这可能对用户来说“很有趣”;他们会看到按钮,他们会按下它,什么也不会发生。请确保让他们知道为什么 按钮不会执行任何操作。

在页面呈现时评估服务器端条件。一旦呈现页面,它就不会考虑页面项目值的变化。对于您的按钮,这意味着只有当条件 :P2_QR_RESULT = :P2_TAG_IDENTIFIER 为真时才会呈现按钮 当页面呈现时 。该按钮不会“消失”,它只是从未“出现”。

从你的问题中不清楚业务流程是什么。这是一种可能的解决方案,但根据您的情况,可能会有更好的解决方案。如果按钮需要动态 appear/disappear(或者是 enabled/disabled - 这对用户来说更直观),那么执行此操作的方法是设置 Dynamic Action在 2 页项目中的每一个上。评估两个页面项目的值,如果相等,enable/show 按钮,否则 hide/disable 按钮。确保动态操作在页面加载时触发。