我正在创建一个计划员,我在其中包含了一个甘特图。我的问题是我正在尝试创建一个从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。
答案 0 :(得分:0)
因此,您希望默认显示当前月份,然后在添加新任务时调整显示的范围?
时间轴范围可由start_date和end_date配置定义,可以动态更改,这些更改将在完全重绘甘特图之后应用。
所以你能做什么:
为之前触发的onBeforeGanttRender 事件添加处理程序 完全重绘甘特。这是这种设置的一个很好的切入点。
在处理程序中,您可以使用gantt.getSubtaskDates获取任务的日期范围,并相应地更新start_date / end_date配置
每次用户添加,更新或删除任务时,您都需要触发 完全重绘甘特
在数据期间,您不需要start_date / end_date配置 加载,因为他们将过滤掉位于的任务 当月以外