【问题标题】:How to show/hide an item/region conditionally depending on the selected tab in Region Display Selector (APEX 20.2)?如何根据区域显示选择器(APEX 20.2)中的选定选项卡有条件地显示/隐藏项目/区域?
【发布时间】:2022-01-28 20:13:38
【问题描述】:

简化: 假设您的应用中有一个包含 11 个区域的页面。 10 个区域组织在选项卡中(1 个类型为“区域显示选择器”的区域,其中 10 个启用区域显示选择器的子区域)和 1 个所有选项卡共有的区域(禁用“区域显示选择器”的子区域)。公共区域包含一个项目,您希望该项目仅出现在 10 个选项卡中的 5 个中。

在搜索和阅读文档后,我了解到 APEX 不提供执行此操作的本地方式。我认为使用服务器端条件您可以确定该项目是否显示在页面上,但不能选择性地显示在不同的区域(如果不是,请纠正我)。 为了解决这个问题,我尝试了几种选择:

选项 1: 删除公共区域并将项目复制 5 次,每次都在我希望它出现的区域(选项卡)内。

选项 2(有效): 为每个区域(选项卡)分配静态 ID 并创建 10 个动态操作,每个区域(选项卡)一个:

当:“点击”“JavaScript”表达式:

$("a[href='#region_static_id']");

执行 JavaScript 代码:

apex.item("P23_COMMON_ITEM").hide(); // when you want this item not to be displayed in the common region 

apex.item("P23_COMMON_ITEM").show(); // when you want this item to be shown in the common region 

这两个选项都有效,但我认为这两个选项都可能导致性能问题,特别是如果不是只有一个项目,而是有很多项目,甚至是表而不是项目。 我会继续调查。如果可能的话,我希望得到专家的建议。

提前致谢。

【问题讨论】:

    标签: oracle-apex apex oracle-apex-20.2


    【解决方案1】:

    您可以创建一个新区域,其中包含要在 10 个区域中的 5 个中显示的项目。然后将该区域放在区域显示选择器的顶部,并为该区域选择一些模板,例如 blank with attributes,使其无边框等。该区域和项目的静态ID可以与JQUERY append一起使用,并带有一些代码sn-喜欢: $("#yourregionid").append("#youritemid"); 然后作为最后一步,您可以为 PAGE LOAD 创建一个动态操作,并为您希望显示该项目的每个区域使用该 JQUERY 代码。

    注意:您可以在为 region&item 提供静态 id 以调整定位和 UI 后,在浏览器的控制台上执行该 JQUERY 代码。

    另一个注意事项:由于数据只会从 db 收集一次,我认为这样不会产生任何性能问题。很可能有其他方法可以实现这一点,但要小心 DB-Apex 交互计数。换句话说,创建 5 个具有相同来源的页面项虽然可行,但会使数据收集复杂度增加 5 倍。

    【讨论】:

    • 我一直在尝试你的方法,谢谢,但我没有得到想要的结果。如果您在页面加载时使用 append(),则该项目仅在一个区域内呈现,而不是在所有所需区域内,并且该区域是您 append() 的最后一个区域。例如$("#region_one_static_id").append( $( "#P23_COMMON_ITEM_CONTAINER" )); $("#region_two_static_id").append( $( "#P23_COMMON_ITEM_CONTAINER" )); $("#region_three_static_id").append( $( "#P23_COMMON_ITEM_CONTAINER" )); $("#region_four_static_id").append( $( "#P23_COMMON_ITEM_CONTAINER" )); // the item is rendered only within this region
    • 您应该创建一个在 RDS 选项卡更改时触发的动态操作(您可以使用 JQUERY 选择器,例如 class:t-Tabs-link),这样您就可以将您的项目附加到 'a -Tabs-selected is-active' 类的 RDS
    • HTML 标记。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签