简化:假设您的应用中有一个包含 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
这两个选项都有效,但我认为这两个选项都可能导致性能问题,特别是如果不是只有一个项目,而是有很多项目,甚至是表而不是项目。我会继续调查。如果可能的话,我希望得到专家的建议。
提前致谢。