如何在PL/SQL查询中使用APEX状态式CSS类替代颜色值?
解决APEX状态CSS类替代颜色值的问题
问题根源
你之前的错误在于应用方式不对:原来返回颜色值时,你可能是把the_color放到了元素的style属性里(比如color: &THE_COLOR.),但CSS类名不能直接用在style属性中,需要单独设置到元素的class属性上。另外还要确认你用的类名是否匹配当前APEX版本的规范。
分步解决方案
1. 确认正确的APEX状态类名
不同APEX版本的实用工具类命名有差异:
- APEX 21+ 集成了Bootstrap,常用文本颜色类为:
- 信息类:
text-info - 警告类:
text-warning - 危险类:
text-danger
- 信息类:
- 旧版APEX(20及以下)可能使用自有命名:
u-info-text、u-warning-text、u-danger-text
验证方法:打开浏览器F12开发者工具,查看页面中APEX自带的状态元素(比如警告提示框)的类名,确保你用的类名存在。
2. 保持CASE语句返回正确类名
调整CASE语句为匹配当前版本的类名,比如Bootstrap风格:
select label,dateadded,headline,description, case when label = 'Info' then 'text-info' when label = 'News' then 'text-warning' when label = 'App Update' then 'text-danger' end the_color from news where dateon <= sysdate and dateoff >= sysdate order by dateadded desc
3. 在APEX组件中正确应用类名
根据你使用的报表类型选择对应方式:
- 交互式报表/交互式网格:
编辑目标列(比如headline或label列),找到「CSS Classes」属性,填入&THE_COLOR.,APEX会自动将这个类名添加到列的元素上。 - 经典报表:
编辑列的「HTML Expression」,用HTML标签包裹内容并添加类,比如:<span class="#THE_COLOR#">#HEADLINE#</span> - 整行应用样式:
如果要给整行添加状态类,在报表的「Row CSS Class」属性中填入&THE_COLOR.。
4. 自定义类(如果自带类不存在)
如果你的APEX版本没有自带对应类,直接在页面的「Inline CSS」中定义:
.text-info { color: #17a2b8; } .text-warning { color: #ffc107; } .text-danger { color: #dc3545; }
内容的提问来源于stack exchange,提问作者Steffen
相关产品推荐
相关产品推荐

