我正在使用完整的日历来显示学生的出勤率。当我单击上一个按钮数据正确加载时,但这些值未显示在我的日历中。我可以在控制台中查看日期,但不能在日历中查看
中的日期$(document).on("click", ".fc-prev-button", function () {
getMonth();
});
$(document).on("click", ".fc-next-button", function () {
getMonth();
});
function getMonth() {
var date = $('div[id*=calendar1]').fullCalendar('getDate');
date = date.format('YYYY-MM-DD');
alert(date);
$('div[id*=calendar1]').fullCalendar({
header: {
left: 'prev,next today myCustomButton',
center: 'title',
right: 'month,agendaWeek,agendaDay'
}
});
$.ajax({
type: "POST",
contentType: "application/json",
data: "{Date:'" + date + "'}",
url: "attendance-full.aspx/GetEvents",
dataType: "json",
success: function (data) {
alert("Done");
console.log(data);
events: $.map(data.d, function (item, i) {
var event = new Object();
event.id = item.EventID;
event.start = new Date(item.StartDate);
event.title = item.EventName;
return event;
})
$("#calendar1").fullCalendar("refetchEvents");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
debugger;
}
});
}
我不完全确定您的getMonth()
打算做什么,但是FullCalendar在更改几个月时会自动处理加载和重新渲染新事件。如果您要做的只是更改几个月后更新显示的事件,则可以删除大部分代码,并使用以下内容。
初始化日历,包括在哪里获得活动:
$('div[id*=calendar1]').fullCalendar({
header: {
left: 'prev,next today myCustomButton',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
events: "attendance-full.aspx/GetEvents",
});
就是这样!首次初始化日历时,FullCalendar会查询您的事件源URL,然后在任何更改月份或查看时再次查询。它将自动重新渲染新事件 - 您无需编写代码即可手动执行此操作。
每当FullCalendar查询事件源时,它将通过start
和end
参数,因此您的服务器端代码应使用这些代码来确定要返回的事件。看来您的代码正在使用Date
-您应该将代码更新为start
和end
,或者可以使用startParam
将start
更改为Date
(尽管您可能也想使用end
)。
FullCalendar文档很好,您应该阅读它们。检查事件源文档,并查看其一些示例。