You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

静态内容区域中Page Items值无法刷新的问题求助

解决Apex静态内容区域动态项不更新的问题

问题原因

静态内容区域的变量替换(比如&P12_FILE_ID.)是页面加载阶段一次性完成的,后续通过动态动作填充P12_FILE_ID、P12_FILE_NAME后,静态内容不会自动重新渲染,因此始终显示初始的NULL值。你尝试的动态内容区域默认也是页面加载时执行一次PL/SQL,后续项值变化后不会自动重新执行,所以同样无法获取最新值。

方案1:用动态动作直接更新DOM(轻量推荐)

无需修改区域类型,通过JavaScript在项值变化时直接更新链接:

  1. 给静态内容的a标签添加Static ID:
<a id="download-link" href="f?p=&APP_ID.:1:&APP_SESSION.:APPLICATION_PROCESS=GET_FILE:::FILE_ID:&P12_FILE_ID.">Download &P12_FILE_NAME.</a>
  1. 创建动态动作:
    • 触发条件:选择P12_FILE_ID和P12_FILE_NAME的「值改变」事件,逻辑设为「或」
    • 动作类型:选择「执行JavaScript代码」,输入以下代码:
// 获取最新项值
const fileId = apex.item("P12_FILE_ID").getValue();
const fileName = apex.item("P12_FILE_NAME").getValue();
const appId = apex.item("APP_ID").getValue();
const appSession = apex.item("APP_SESSION").getValue();

// 构建下载链接
const downloadUrl = `f?p=${appId}:1:${appSession}:APPLICATION_PROCESS=GET_FILE:::FILE_ID:${fileId}`;

// 更新链接元素
const linkEl = document.getElementById("download-link");
linkEl.href = downloadUrl;
linkEl.textContent = `Download ${fileName}`;
  1. 可选:添加页面加载完成时的触发条件,确保编辑场景下初始有值时也能正确渲染链接。

方案2:刷新动态内容区域

如果坚持使用动态内容区域,需在项值变化时重新触发PL/SQL执行:

  1. 保留你现有的动态内容区域PL/SQL代码,确保区域Static ID设为DOWNLOAD_LINK,并使用支持Static ID的区域模板(比如Apex自带的「Blank with Attributes」模板)。
  2. 创建动态动作:
    • 触发条件:选择P12_FILE_ID和P12_FILE_NAME的「值改变」事件,逻辑设为「或」
    • 动作类型:选择「刷新」,刷新目标选择你的动态内容区域(或直接指定Static ID DOWNLOAD_LINK)

每次项值变化时,动态内容区域会重新执行PL/SQL,生成包含最新值的下载链接。

内容的提问来源于stack exchange,提问作者Vitaly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:03:31