Диапазон дат просмотра Kendo ui Scheduler

Сводка:
Как получить начальную и конечную дату представления Планировщика при переходе к другому дню/неделе, месяцу и т. д.

Подробности:
При переходе к новому диапазону дат в выбранном в данный момент представлении, для целей этого сообщения представление отображается по месяцам, я хотел бы получить дату начала и дату окончания "следующего" представления. Я хотел бы перейти к новому представлению, чтобы инициировать запрос на сервер для данных только в этом диапазоне дат. У нас уже есть полностью разработанный CRUD, список, поисковый API на внешнем интерфейсе, который мы используем для подключения к существующим компонентам пользовательского интерфейса, я хотел бы использовать его. Этот вопрос уже задавался ранее, но я не могу найти ответ. Все ответы подразумевают тесную привязку планировщика к «транспорту».

Я использовал календари Arshaw и dhtmlx в прошлом, если их API недавно не изменился, это была простая задача.

Для Kendo ui Scheduler Событие «navigate» вызывается перед переходом к следующему «представлению» (хотя у меня есть обходной путь, который я мог бы использовать здесь, но совсем не элегантный).

Событие "dataBinding" вызывается слишком часто: щелчок, перетаскивание и т. д. (опять же, я мог бы обойти ее, но опять же, не элегантно).

У других такая же проблема: http://www.telerik.com/forums/start-end-date-of-month-view ... но ответ Telerik: http://www.telerik.com/support/code-library/kendoui-Scheduler-server-filtering http://www.telerik.com/support/code-library/server-filtering http://www.telerik.com/forums/get-scheduler-view-startdate-and-enddate-in-navigate-event
... но я не хочу, чтобы виджет имел какое-либо отношение к извлечению данных, я хочу обнаружить событие " navigationOnArrival", "viewReady", "viewRendered" или что-то в этом роде, тогда пусть наша служба данных обработает повторно trieval, а то я жестко привязываю планировщик к нашему апи.

Я вполне уверен, что упустил что-то простое.
Заранее спасибо, все комментарии приветствуются.


person nick wall    schedule 15.11.2016    source источник


Ответы (1)


Для всех, кто заинтересован, я нашел один способ, и Телерик также дал ответ.

Как я понял, подключитесь к событию «dataBinding», либо по вашим параметрам:

yourSched.schedulerOptions = {
views: ["timeline"],  
  dataSource, yourSource,  
  dataBinding: function(e){
      var vw = yourSched.view();
      var startDate = vw.startDate();
      var endDate = vw.endDate();
      if(e.action==="rebind"){   // <<<--------  This gets called once as nav to diff view or date range.
        // Now you can retrieve from server
        myService.getDataFromServer(startDate, endDate)
        .then(function(response){
          ///load etc.
        });
      }
  }
}

Telerik также предоставил ответ: http://www.telerik.com/forums/scheduler-datasource-refresh-based-on-navigate-date-range#VqcirkrQX0-UK66dHTA0ig

person nick wall    schedule 17.11.2016
comment
Великолепно! Это была огромная помощь! Большое спасибо! - person Michael Rodrigues; 18.03.2019