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

求助:如何在Oracle Apex甘特图中实现周末高亮显示?

在Oracle APEX甘特图中实现周末高亮的解决方案

实现思路

APEX的甘特图基于Oracle JET封装,没法直接用JET原生代码,但可以通过自定义JS获取底层JET实例,配合CSS实现周末高亮。

1. 添加高亮样式

打开页面属性,找到「CSS」下的「内联」区域,粘贴以下CSS:

/* 周末高亮样式,可自行调整颜色 */
.custom-weekend-highlight {
    background-color: #f8f8f8 !important;
    opacity: 0.8;
}

2. 编写自定义JS逻辑

在页面的「动态动作」里新建一个动作,触发条件设为「页面加载完成」,执行类型选「执行JavaScript代码」,粘贴以下代码:

// 替换成你的甘特图区域静态ID
const ganttRegionId = "YOUR_GANTT_STATIC_ID";
// 获取APEX甘特图的JET实例
const ganttWidget = apex.region(ganttRegionId).widget();
const jetGantt = ganttWidget.interactiveGantt;

// 自定义单元格渲染逻辑
jetGantt.setRenderer({
    renderGridCell: function(cellCtx) {
        const day = cellCtx.date.getDay();
        // 匹配周日(0)和周六(6)
        if (day === 0 || day === 6) {
            cellCtx.content = "<div class='custom-weekend-highlight'></div>";
        }
        return cellCtx;
    }
});

// 刷新甘特图生效
jetGantt.refresh();

注意:把YOUR_GANTT_STATIC_ID换成你甘特图区域的实际静态ID(在区域属性的「高级」标签里设置)。

3. 验证与调整

  • 运行页面,检查周末日期是否被高亮
  • 要是样式没生效,可修改CSS里的颜色值,或者给选择器加更具体的前缀(比如结合甘特图默认的类)
  • 若JS报错,确认静态ID正确,且动态动作的触发时机是在甘特图加载完成后

额外提示

  • 想区分周六和周日的高亮颜色,可在renderGridCell里对day === 0和day === 6分别设置不同的CSS类
  • APEX 20.0及以上版本的甘特图都支持这个方法,低版本可能需要调整获取实例的方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:55:24