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

时间:2016-03-07 02:47:35

标签: javascript jquery json codeigniter dhtmlx

我正在创建一个计划员,我在其中包含了一个甘特图。我的问题是我正在尝试创建一个从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",          
});

你能帮我解决这个问题吗?我正在使用this example here

1 个答案:

答案 0 :(得分:0)

因此,您希望默认显示当前月份,然后在添加新任务时调整显示的范围?

时间轴范围可由start_dateend_date配置定义,可以动态更改,这些更改将在完全重绘甘特图之后应用。

所以你能做什么:

  • 为之前触发的onBeforeGanttRender 事件添加处理程序 完全重绘甘特。这是这种设置的一个很好的切入点。

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

  • 每次用户添加,更新或删除任务时,您都需要触发 完全重绘甘特

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

以下是完整的演示http://docs.dhtmlx.com/gantt/snippet/7d86e912