Jquery完整日历 - 仅获取当前视图事件

时间:2015-11-04 12:16:32

标签: jquery ajax asp.net-mvc fullcalendar

我在这个主题上阅读了更多内容,但没有什

我正在使用带有asp.net mvc和ajax的JQuery FullCalendar来获取大量事件。

我想通过仅显示当前视图的事件来限制它,当用户点击next / prev时,他们会加载该视图的事件,依此类推。

$("#calendar").fullCalendar({
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    editable: true,
    height: 'auto',  //altfel se prelungea mult in jos
    defaultView: 'agendaWeek',
    events: "/calendar/GetAllCalendarEvents/"  //gets the events.
});

我看到了开始/结束日期,但您如何使用它?我想仅根据这些日期从服务器获取,但是当您单击next / prev以获取新的时间段事件时。

任何人都可以提供帮助?

1 个答案:

答案 0 :(得分:0)

“start”和“end”参数是unix时间戳。您可以使用控制器操作来获取如下所示的时间戳:

public ActionResult GetAllCalendarEvents(double start, double end)
{
    var startDate   = start.FromUnixTimestamp();
    var endDate     = end.FromUnixTimestamp();

    // Get your events into a list here
    IEnumerable<SomeEventClass> events = ...;

    return Json(events.Select(evt => new 
            {
                title           = evt.Title,
                url             = evt.Url,
                start           = evt.StartDate.ToISO8601(),
                end             = evt.EndDate.ToISO8601(),
            }), JsonRequestBehavior.AllowGet);
}

我上面使用的扩展方法如下:

public static DateTime FromUnixTimestamp(this double timestamp)
{
   var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
   return origin.AddSeconds(timestamp).ToLocalTime();
}

public static string ToISO8601(this DateTime date)
{
    return date.ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz");
}

希望这有帮助。