请任何人帮我查找代码中出现的问题。我使用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'}]
)
答案 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
参数。仍然不确定为什么,但是当我删除此参数时它们就出现了。