首先是这个问题的两个部分,使用简单示例如何获取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();
}
});
});
我的问题的第二部分是我应该返回的日期格式(不确定我目前的情况是否正确?
由于
答案 0 :(得分:0)
我没试过这个,但我怀疑你可以使用jQuery getJSON来获取数据,然后使用fullcalendar事件和/或eventsources属性来设置事件。这看起来像这样:
$.getJSON($("#calendarUri").val(), function(data) {
$("#calendar").fullCalendar(
{
events: data
}
)
});
我相信当您以这种方式设置事件时, 应该继续使用相同的事件数据,而不是分页数,周数等。
然后在你看来:
@Hidden("calendarUri", Url.Action("CalendarData", new { id = 1 }))
请注意,通过在视图中使用隐藏字段来存储事件订阅源的网址,如果更改路由,则不会遇到麻烦。
答案 1 :(得分:0)
这篇文章对于我在事件中显示完整日历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
});
});