事件未显示在fullcalendar js中

时间:2014-04-22 06:02:51

标签: jquery asp.net fullcalendar

请任何人帮我查找代码中出现的问题。我使用fullcalendar.js进行日历活动。

我想在日历中显示事件。下面是我的代码。

$(document).ready(function() {

    $(window).resize(function() {
        $('#calendar').fullCalendar('option', 'height', get_calendar_height());
    });

    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();
    var nevent = [];

    nevent = document.getElementById('<%=hdnevent.ClientID%>').value;


   // alert(nevent);
    var calendar = $('#calendar').fullCalendar({
        theme: true,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay',
            width: get_calendar_width
        },
        width: get_calendar_width,
        height: 480,
        selectable: true,
        selectHelper: true,
        slotMinutes: 15,
        allDayDefault: false,

        //  events: 'JsonResponse.ashx',
        events: nevent
 });

});

nevent值为:

[{ id: '2302', title: 'XXX', start: '4/4/2014 12:00:00 AM', end: '4/4/2014 12:00:00 AM', allDay: true, url: 'xxx'}]

但它不会显示在日历中。 如果我直接赋值,那么它显示事件(例如:事件:[{ id: '2302', title: 'XXX', start: '4/4/2014 12:00:00 AM', end: '4/4/2014 12:00:00 AM', allDay: true, url: 'xxx'}]

请帮助我纠正错误。

4 个答案:

答案 0 :(得分:8)

需要告知日历在数据更改后更新。尝试:

$("#calendar").fullCalendar('removeEvents');
$("#calendar").fullCalendar('addEventSource', nevent);
$("#calendar").fullCalendar('rerenderEvents');

当nevent准备就绪时。

修改

接受输入为JSON对象而不是字符串:

nevent = $.parseJSON(document.getElementById('<%=hdnevent.ClientID%>').value);

请注意,JSON格式必须正确,引号如下:

[{ "id": "2302", "title": "XXX", "start": "4/4/2014 12:00:00 AM", "end": "4/4/2014 12:00:00 AM", "allDay": true, "url": "xxx"}]

答案 1 :(得分:2)

我在我的日历应用程序中尝试过这种方式。看来你的日期格式是错误的。它应该是

[{ id: '2302', start: new Date(2014, 1, 3, 12, 0), end: new Date(2014, 4, 4, 12, 0) ,allDay: true, url: 'xxx'}]

希望这有帮助。

答案 2 :(得分:1)

nevent值中,start(和end)根据文档应该是: “您可以指定IETF格式的字符串(例如:”Wed,2009年10月18日13:00:00 EST“),ISO8601格式的字符串(例如:”2009-11-05T13:15:30Z“)或UNIX时间戳“

因此您必须转换日期。

答案 3 :(得分:0)

对我来说,有些事件根本没有显示,因为我定义了timezone参数。仍然不确定为什么,但是当我删除此参数时它们就出现了。