如何使用 DHTMLX 甘特图扩展甘特图的日期显示

How can I extend the date display of the Gantt chart using DHTMLX Gantt?

本文关键字:日期 显示 扩展 何使用 DHTMLX      更新时间:2023-09-26

我正在创建一个规划器,并在其中包含了一个甘特图。我的问题是我正在尝试创建一个从 2016 年 3 月 31 日开始的时间表,它将在 2016 年 4 月 15 日结束。但我的问题是我的图表下个月不显示。

我的

流程是,默认情况下,我的图表将加载当前月份的第一天和最后一天,并按天显示。

这是我的示例代码:

//get first and last day of current month
var parsed = Date.parse("today");
var firstOfMonth = new Date(parsed.getFullYear(),parsed.getMonth(), 1);
var lastOfMonth = new Date(parsed.getFullYear(),parsed.getMonth()+1, 0);
var f_firstOfMonth = firstOfMonth.toString("yyyy-MM-dd");
var f_lastOfMonth = lastOfMonth.toString("yyyy-MM-dd");
//assign to the empty gantt
$(".mygantt").dhx_gantt({
    data: '',
    start_date: f_firstOfMonth,
    end_date: f_lastOfMonth,
    scale_height: 50,
    scale_unit: "day",          
});

你能帮我这个吗?我在这里使用这个例子。

所以你想默认显示当前月份,然后在添加新任务时调整显示范围吗?

时间轴范围可以通过start_date和end_date配置来定义,这些配置可以动态更改,这些更改将在甘特图完全重绘后应用。

所以你可以做什么:

  • 为 onBeforeGanttRender 事件添加一个处理程序,该事件在之前触发甘特图的完整重绘。对于此类设置,这是一个很好的切入点。

  • 在处理程序中,您可以使用gantt.getSubtaskDates获取任务的日期范围,并相应地更新start_date/end_date配置

  • 每次用户添加、更新或删除需要触发的任务时甘特图的完整重绘

  • 数据期间不需要start_date/end_date配置加载,因为它们将过滤掉位于当月以外

这是一个完整的演示 http://docs.dhtmlx.com/gantt/snippet/7d86e912