2011-05-31 75 views
1

你能說這有什麼問題嗎?我有一個JavaScript函數調用它創建一個新的事件數組並嘗試刷新fullcalendar。如何在數組中使用fullcalendar addeventsource?

var events = new Array();
var numberofevents = this.serviceVariableGetDates.getTotal();

for (i=0;i<numberofevents;i++) 
     { 
     //alert("numbrr:" + i); 
     var dates=this.serviceVariableGetDates.getItem(i); 
     console.log(dates.getData()); 
     var start_date = dates.getValue("c0"); 
     var end_date = dates.getValue("c1"); 
     var event_name = dates.getValue("c2"); 
     //var EventEntry = [ 'title: '+ event_name, 'start: '+ start_date,'end: '+ end_date ]; 
     events['title'] = event_name; 
     events['start'] = start_date; 
     events['end'] = end_date; 
     events['color'] = "blue"; 
     this.label1.setCaption(start_date); 
     //EventArray.push(EventEntry); 
     console.log(events['title']); 
     } 
    $('#calendar').fullCalendar('addEventSource',events); 
    $('#calendar').fullCalendar('rerenderEvents'); 

日曆不刷新或顯示事件數組中的事件....通過不同的調試方法,我相信事件陣列填充了正確的數據。 start_date例如是「1307318400000」,它是unix時間戳格式。 fullcalendar正在初始化其他地方(當頁面加載時),並且即使addeventsource和rerenderevents方法被調用,它也保持不變。

+0

不推薦將事件提要作爲數組呈現 - 即使作者也在討論這一點,並鼓勵使用json回覆的服務器端提要。在客戶端上管理陣列可能非常困難。 http://arshaw.com/fullcalendar/docs/event_data/events_array/ – ppumkin 2011-05-31 15:24:31

回答

3

根據你需要把事件的陣列到addEventSource功能的文檔

事件必須與標題的Event Object,並在很 至少啓動。

var events=new Array(); 
var numberofevents = this.serviceVariableGetDates.getTotal(); 
    for (i=0;i<numberofevents;i++) 
    { 
    //alert("numbrr:" + i); 
    var dates=this.serviceVariableGetDates.getItem(i); 
    console.log(dates.getData()); 
    var start_date = dates.getValue("c0"); 
    var end_date = dates.getValue("c1"); 
    var event_name = dates.getValue("c2"); 
    //var EventEntry = [ 'title: '+ event_name, 'start: '+ start_date,'end: '+ end_date ]; 
    event = new Object();  
    event.title = event_name; // this should be string 
    event.start = start_date; // this should be date object 
    event.end = end_date; // this should be date object 
    event.color = "blue"; 
    event.allDay = false; 
    this.label1.setCaption(start_date); 
    //EventArray.push(EventEntry); 
    console.log(events['title']); 
    events.push(event); 
    } 
$('#calendar').fullCalendar('addEventSource',events); 
//$('#calendar').fullCalendar('rerenderEvents'); 

希望這將幫助!