Как использовать fullcalendar addeventsource с массивом? - PullRequest
3 голосов
/ 31 мая 2011

Подскажите, пожалуйста, что с этим не так?У меня есть функция JavaScript, которая вызывает новый массив событий и пытается обновить fullcalendar.

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.Полный календарь инициализируется где-то еще в начале (при загрузке страницы) и остается неизменным даже при вызове методов addeventsource и rerenderevents.

1 Ответ

4 голосов
/ 09 августа 2011

в соответствии с документацией, вам нужно поместить массив событий в функцию 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 ];
    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');

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...