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

如何不提交页面刷新Oracle Apex中PL/SQL动态内容区域

Oracle Apex v21.1 动态生成文本框的无刷新实现方案

完全可以通过原生功能实现你需要的近似无刷新的动态渲染效果,无需额外第三方插件,两种常用实现方案如下:


方案1:原生PL/SQL动态内容区域刷新(最简便,推荐)

Apex 18.x及以上版本的PL/SQL动态内容区域本身支持原生局部刷新,不存在无法局部刷新的问题,操作步骤:

  • 给你的PL/SQL动态内容区域设置静态ID,例如DYNAMIC_TEXT_CONTAINER
  • 打开区域的「要提交的页面项」属性,填入你用来控制数量的LOV项名称(例如P1_SELECT_COUNT),同时开启「仅当该区域的项值发生变化时刷新」开关
  • 区域内的PL/SQL代码直接按你的需求写,调用HTP.P输出带自定义CSS类的APEX_ITEM.TEXT组件,示例代码:
DECLARE
    l_count NUMBER := NVL(:P1_SELECT_COUNT, 0);
BEGIN
    FOR i IN 1..l_count LOOP
        HTP.P('<div class="t-Form-item t-Form-item--left">');
        HTP.P(APEX_ITEM.TEXT(
            p_idx => 1,
            p_size => 30,
            p_attributes => 'class="apex-item-text apex-item--size-30" placeholder="请输入第'||i||'项内容"'
        ));
        HTP.P('</div>');
    END LOOP;
END;
  • 新建动态动作(DA),触发条件为LOV项的值改变事件,执行动作为「刷新」,目标选择你配置好的PL/SQL动态内容区域即可。刷新时仅会异步重新渲染该区域内容,不会刷新整个页面,体验和交互式报表刷新完全一致。

方案2:Set Value DA实现(适合需要更精细控制渲染逻辑的场景)

如果你不想用区域刷新,也可以通过Set Value动态动作实现完全无刷新的HTML注入:

  • 新建一个页面显示项,类型选择「显示HTML」,设置为隐藏(无需展示标签),分配静态ID例如DYNAMIC_HTML_HOLDER
  • 新建应用进程,类型设置为「按需执行的AJAX回调」,命名为GET_DYNAMIC_TEXTS,代码逻辑为生成对应数量的文本框HTML,示例代码:
DECLARE
    l_html CLOB;
    l_count NUMBER := NVL(:P1_SELECT_COUNT, 0);
BEGIN
    FOR i IN 1..l_count LOOP
        l_html := l_html || '<div class="t-Form-item t-Form-item--left">'
        || APEX_ITEM.TEXT(
            p_idx => 1,
            p_size => 30,
            p_attributes => 'class="apex-item-text apex-item--size-30" placeholder="请输入第'||i||'项内容"'
        )
        || '</div>';
    END LOOP;
    HTP.P(l_html);
    APEX_APPLICATION.STOP_APEX_ENGINE;
END;
  • 新建动态动作,触发条件为LOV项的值改变事件,执行动作选择「设置值」:
    • 值类型选择「AJAX回调」
    • 回调名称选择你刚创建的GET_DYNAMIC_TEXTS
    • 「要提交的项」选择你的LOV项(例如P1_SELECT_COUNT)
    • 「设置值的目标」选择你新建的HTML显示项
  • 执行DA时会异步拉取生成的HTML代码注入到页面,全程无页面跳转或全局刷新。

取值注意事项

两种方案的后端取值逻辑和你之前用交互式报表的逻辑完全兼容,提交页面后通过APEX_APPLICATION.G_F01数组即可遍历所有动态生成的文本框的值,无需修改原有提交处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:27:03