2016-03-07 1194 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