这个问题的两个部分首先,使用简单的例子,我如何获得fullcalendar来从我的JSON提要中获取所有事件,而不需要来回分页?我的日历是短期的,非常具体,所以在滚动日期时不需要重新加载事件。以下是操作方法:
public JsonResult CalendarData(int id)
{
List<object> json = new List<object>();
json.Add(
new
{
title = "Click for Google",
start = string.Format("/Date({0})/", DateTime.Now.ToUnixTime()),
end = string.Format("/Date({0})/", DateTime.Now.AddDays(1).ToUnixTime()),
url = "http://google.com/"
});
return this.Json(json, JsonRequestBehavior.AllowGet);
}
这是我用来尝试在一个调用中恢复所有事件的JS:
$(document).ready(function () {
$('#calendar').fullCalendar({
editable: false,
events: "{controller}/calendardata/1",
loading: function (bool) {
if (bool) $('#loading').show();
else $('#loading').hide();
}
});
});
我问题的第二部分是我应该返回什么日期格式(不确定我目前的格式是否正确?
感谢
我还没有尝试过,但我怀疑您可以使用jQuery getJSON来获取数据,然后使用fullcalendar事件和/或eventsource属性来设置事件。看起来像这样:
$.getJSON($("#calendarUri").val(), function(data) {
$("#calendar").fullCalendar(
{
events: data
}
)
});
我相信,当你以这种方式设置事件时,它应该在几个月、几周等时间内使用相同的事件数据。
那么在你看来:
@Hidden("calendarUri", Url.Action("CalendarData", new { id = 1 }))
请注意,通过在视图中使用隐藏字段来存储事件提要的URL,如果更改路由,就不会遇到麻烦。
本文对事件中显示的完整日历json值非常有用。
@Html.Hidden("calendarUri", Url.Action("LoadCalendarData","Home"))
jq.getJSON($("#calendarUri").val(), function (data) {
jq('#calendar').fullCalendar({
header: {
//left: 'prev,next today',
left: 'prev',
center: 'title',
//right: 'month,agendaWeek,agendaDay'
right: 'next',
height: '650',
},
defaultDate: '@currentDate',
editable: true,
eventLimit: true, // allow "more" link when too many events
events: data
});
});