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

如何在Oracle APEX树形区域各节点末尾添加按钮并实现弹窗添加子节点?

在Oracle APEX树形区域节点添加+按钮实现子节点新增功能

步骤1:修改树形区域节点模板,插入+按钮

找到你的树形区域对应的节点模板(可在共享组件→模板→树形模板中查找,或直接在树形区域属性→外观→节点模板查看),编辑模板的「节点」部分,在节点文本末尾添加带父节点ID标识的按钮:

<span>#NODE_LABEL#</span>
<button class="t-Button t-Button--icon t-Button--small btn-add-child" data-parent-id="#ID#">
    <span class="t-Icon fa fa-plus" aria-hidden="true"></span>
</button>
  • #ID# 是树形节点的主键字段(确保树形区域的SQL查询包含该字段)
  • data-parent-id 用来存储当前节点ID,后续传递给新增表单;按钮用APEX内置样式类保证界面风格统一

步骤2:创建新增子节点的模态对话框页面

  1. 新建页面,类型选择「模态对话框」
  2. 在对话框页面搭建表单,包含子节点所需输入字段,再添加一个隐藏页面项(比如PXX_PARENT_ID,XX为对话框页面编号),用于接收父节点ID
  3. 配置表单提交逻辑,将隐藏项PXX_PARENT_ID作为新节点的父ID插入数据库

步骤3:给+按钮绑定点击事件,传递父ID并打开对话框

在树形区域所在页面创建动态动作:

  • 事件:点击
  • 选择器:.btn-add-child(与步骤1中按钮的class对应)
  • 动作:打开对话框
  • 对话框页面:选择刚创建的模态对话框页面
  • 设置页面项:添加一行,将PXX_PARENT_ID的值设为 $(this.triggeringElement).data('parent-id')(获取按钮上存储的父节点ID)
  • 勾选「关闭后刷新」,选择树形区域的静态ID(需先给树形区域设置静态ID,比如TREE_REGION)

步骤4:完善对话框保存与刷新逻辑

在对话框页面的提交按钮上,设置提交成功后:

  1. 关闭模态对话框
  2. 触发树形区域刷新(若动态动作已设置关闭后刷新,此步骤可省略)

替代方案:用页面内区域作为对话框

若不想新建页面,可在当前页面创建模态区域(区域类型设为「模态对话框」):

  1. 给模态区域设置静态ID,默认隐藏
  2. 给+按钮绑定动态动作:点击时显示模态区域,同时将父节点ID赋值给隐藏页面项
  3. 表单提交后,执行刷新树形区域、隐藏模态区域的动作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:51:18