首页 > 解决方案 > Oracle Apex 19 - 动态更改页面项模板

问题描述

是否有一种简单的方法来动态更改页面项目模板,可以在外观选项卡中找到?

例如,如果一个页面项具有特定值,则另一个项的模板应从可选切换为必需。我可以创建两个项目,但有更好的解决方案吗?

标签: oracle-apex

解决方案


如果您使用的是通用主题,那么每个项目都将位于 ID 为的“容器”div 中<item_name>_CONTAINER- 例如,项目P101_EMPNO将有一个名为 的容器 div P101_EMPNO_CONTAINER。如果项目具有“必需”模板,则此容器 div 将具有类is-required,但如果它具有“可选”模板,则不会。

因此,在动态操作中您需要做的就是使用一点 Javascript:

  1. 当物品成为必需品时:
    $('#P101_EMPNO_CONTAINER').addClass('is-required');
  1. 当项目变为可选时:
    $('#P101_EMPNO_CONTAINER').removeClass('is-required');

如果您需要在几个地方执行此操作,您可以通过创建您将使用项目名称调用的 Javascript 库函数来简化流程并保护自己免受未来对通用主题的更改,例如:

    mylib.makeRequired('P101_EMPNO');
    mylib.makeOptional('P101_EMPNO');

推荐阅读