2016-03-07 1196 views
0

我正在创建一个规划师,我在其中包含一个甘特图。我的问题是我试图创建一个时间表,开始于2016年3月31日,它将在2016年4月15日结束。但我的问题是我的图表不显示下个月。如何使用DHTMLX甘特图扩展甘特图的日期显示?

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

这里是我的示例代码:

//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

+0

请点击以下链接:首先检查样品链接](http://docs.dhtmlx.com/gantt/samples/)。比选择[03 Scales](http://docs.dhtmlx.com/gantt/samples/03_scales/)。有很多选择可以用于所需目的。我建议dinamic规模,年规模,汽车调整大小,自定义规模,甚至缩放以适应规模(可能是你最喜欢的恕我直言)。查看任何这些代码(Google Chrome中的F12)或查看其[论坛](http://forum.dhtmlx.com/index.php)上的相关主题。 – Tpojka

回答

0

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

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

所以,你可以做什么:

  • 添加处理程序onBeforeGanttRender事件,这是之前 甘特的完全重绘解雇。对于这种设置来说,这是一个很好的切入点。

  • 里面的处理程序,你可以得到使用gantt.getSubtaskDates和更新起始日期/ END_DATE CONFIGS任务的日期范围相应

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

  • 你没有数据时需要起始日期/ END_DATE CONFIGS 加载,因为它们会过滤掉位于 当月外任务

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