Oracle Apex:如何在按下按钮时隐藏或显示区域?

gudnpqoy  于 2022-11-28  发布在  Oracle
关注(0)|答案(2)|浏览(318)

我有一个按钮和一个区域。当按钮被按下时,如果区域被隐藏,我希望它显示该区域,如果区域被显示,我希望它隐藏该区域。我尝试用JavaScript条件来实现这一点。下面是呈现窗格中的按钮和区域:

在按钮下面有一个动态动作,当按钮被按下时会被触发。如果结果为真,那么它应该显示该区域,如果结果为假,那么它应该隐藏该区域。
因此,剩下的就是在客户端条件下将JavaScript表达式添加到该动态操作中,如下所示

if (*region is visible*)
    return false;//hide the region
else
    return true;//show the region

问题是我不知道要用什么代码来查找一个区域是否可见。我给这个名为TestRegionID的区域分配了一个静态ID,我猜JavaScript中引用了这个ID,如下所示:$(TestRegionID)
那么我该如何编写这个JavaScript表达式呢?

**更新:**答案是将($(TestRegionID).is(":visible"))放入JavaScript表达式框中,并翻转隐藏和显示操作的位置(对-〉隐藏,错-〉显示)

drkbr07n

drkbr07n1#

除了你正在尝试的方法,还有其他的方法。这里有一个例子,说明如何用一个区域/按钮来实现它。我没有使用一个按钮,而是使用了两个按钮(一个隐藏按钮和一个显示按钮),并且只隐藏/显示相关的一个按钮。用一个页面加载动态操作设置初始状态,然后从那时起,对动态操作进行编码,这样就不会有任何混乱。
对于示例,我有以下组件:

  • 区域R1
  • 按钮“显示R1”
  • 按钮“隐藏R1”

当页面启动时,只有“Show R1”按钮应该可见,区域和“Hide R1”按钮应该隐藏,因此页面加载有一个动态操作(da):

  • name:“设置初始状态”
  • false操作:隐藏
  • 受影响元素:区域R1
  • false操作:隐藏
  • 受影响元素:按钮隐藏R1

测试这个。只有按钮“显示R1”应该是可见的页面加载。
现在,创建一个单击按钮Show R1时的动态动作:

  • name:“显示区域R1”
  • false操作:隐藏
  • 受影响元素:按钮显示R1
  • false操作:显示
  • 受影响元素:按钮隐藏R1
  • false操作:显示
  • 受影响元素:区域R1

这个动态动作将显示区域,隐藏“显示”按钮并显示“隐藏”按钮。现在剩下要做的就是创建“相反”da,当“隐藏”按钮可见时使用:

  • name:“隐藏区域R1”
  • false操作:隐藏
  • 受影响元素:按钮隐藏R1
  • false操作:显示
  • 受影响元素:按钮显示R1
  • false操作:隐藏
  • 受影响元素:区域R1

如果你添加更多的按钮,你需要为每个按钮设置一个“显示”和一个“隐藏”动态动作,以切换所有按钮和区域的显示/隐藏。

mnemlml8

mnemlml82#

您可以使用以下命令来检查是否已使用标准“隐藏”(Hide)命令隐藏了某个区域。

$('#my-region').css('display')

这可以是您的JavaScript表达式,并具有显示/隐藏true/false条件。
在我的地区,我经常通过checking if any rows returned做类似的事情。

$(this.triggeringElement).find('.nodatafound').length == 1

相关问题