2015-11-04 3 views
1

Я читал больше на эту тему, но ничего не понял, поэтому, возможно, кто-то может помочь.JQuery полный календарь - получать только текущие виды событий

Я использую JQuery FullCalendar с asp.net mvc и ajax для получения большого количества событий.

Я хочу ограничить это, только отображая событие для текущего вида, и когда пользователь нажимает 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 для получения нового периода времени.

Любой может помочь?

ответ

0

Параметры «старт» и «конец» - это временные метки 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"); 
} 

Надеется, что это помогает.

+0

Благодарим за подсказку, но как я могу ее назвать в форме js в календаре? Когда я нажму рядом, он вызовет новый старт и конец? Извините, если это звучит глупо :) – AdrianD

+0

Из документов: http://fullcalendar.io/docs/event_data/events_json_feed/ Имена параметров GET будут определяться параметрами startParam и endParam. («старт» и «конец» по умолчанию). Значения этих параметров будут строками даты ISO8601 (например, 2013-12-01). Подробное описание поведения см. В документах часового пояса. – Andreas

+0

У меня, наконец, было время, чтобы реализовать его, он работает, вам нечего добавить в js-часть. Календарь всегда отправляет начало и конец текущего представления !, Большое спасибо! – AdrianD

Смежные вопросы