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

APEX Tree区域设置Escape Special Characters为No后无法加粗文本如何解决

问题原因

Oracle APEX的Tree区域自带的Escape Special Characters选项存在组件适配限制,该配置仅对报表类原生组件生效,Tree组件底层基于第三方jsTree库实现,默认会强制转义所有节点文本中的HTML标签,APEX没有将区域的转义开关同步到jsTree的初始化参数中,因此你之前的写法无法生效,属于组件封装的已知特性,不是操作错误。

可行解决方法

方法1:开启jsTree的HTML渲染权限(适配你现有写法)

  1. 先修正SQL语句中的HTML语法错误,你之前写的标签带多余空格,会导致解析失败,修改后示例:
-- 自定义类写法
'<div class="TFLBOLD">'||A.NAME||' - Nivel - '||level||'</div>'
-- 或者<b>标签写法
'<b>'||A.NAME||' - Nivel - '||level||'</b>'
  1. 进入Tree区域的属性面板,找到「高级」→「JavaScript初始化代码」,填入以下配置:
function(options) {
    options.jstreeOptions.core = options.jstreeOptions.core || {};
    options.jstreeOptions.core.html_titles = true;
    return options;
}
  1. 保存页面刷新即可,你的HTML标签会正常渲染生效。

方法2:自定义类实现(更易维护)

如果不想在SQL中硬编码HTML,可以用节点属性传递的方式实现:

  1. 调整Tree的查询语句,新增自定义类返回列:
select 
    A.ID as id,
    A.PARENT_ID as parent_id,
    A.NAME||' - Nivel - '||level as name,
    -- 符合你的判定条件时返回加粗类,否则返回空
    case when [你的条件] then 'TFLBOLD' else null end as a1_class
from [你的表名] A
start with [根节点条件]
connect by prior A.ID = A.PARENT_ID

注:a1_class是APEX Tree固定的节点类属性别名,不可修改

  1. 在页面的「内联CSS」中添加样式规则:
.TFLBOLD a {
    font-weight: bold !important;
}
  1. 不需要调整转义开关,保存刷新即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:24:04