Oracle APEX-如何根据另一个项目的值显示页面加载中的一个项目

时间:2018-07-27 20:05:40

标签: oracle-apex-5.1

我在页面上有一个项目想要基于另一个项目的值在页面加载时显示/隐藏。如果item2为dcolumn,则显示item1;如果item2为Yes,则隐藏item1。

我知道如何使用动态操作和javascript来做到这一点,但我想避免使用javascript。有没有一种使用APEX内置功能的方法?我知道我可以使用No动作来隐藏项目,但是仅当item2为Show时才需要显示它。 APEX Yes操作没有条件

On Change事件也有相同的问题:

Show

是否有更好,更有效的方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

ITEM2必须以某种方式获得其值 ,对吧?因此,请使用相同的代码(填充ITEM2)作为ITEM1的条件,并检查其值是“是”(并显示)还是“否”(所以不要)。

我更喜欢使用函数来返回布尔值来实现;像

declare
  l_item2 varcahr2(10);
begin
  -- this is supposed to look like source for ITEM2
  select ...
    into l_item2
    from ...
    where ...;

  return l_item2 = 'Yes';
end;

答案 1 :(得分:1)

并入js并不是一个完美的用例-在网页上具有动态行为。为什么要避免呢?我很好奇。

但是,只要item2是“选择列表”或“广播组”,您仍然可以实现类似的行为。

  • 将“选择时的页面操作”设置为提交
  • 将源设置为“仅当当前值为NULL时”-这样,即使在提交页面后,该值也将存储在会话中。
  • 已将item1的条件显示设置为“ ITEM不为空”,然后选择ITEM2作为项目。

如果执行以下步骤,则在选择ITEM2之后,将显示ITEM1。