События страницы планировщика KendoUI по времени
Мы используем Kendo Scheduler для отображения заказов в залах заседаний. Существует большое количество исторических данных, которые не требуются при загрузке планировщика, но пользователь может легко просматривать. Из-за этого эти исторические события не нужно загружать, пока планировщик не перейдет к их временному интервалу.
Есть ли способ реализовать пейджинг / фильтрацию по выбранному временному интервалу? Моим первым предположением было бы реализовать собственный транспорт и запросить у сервера правильное подмножество бронирований, но метод "read" вызывается только один раз, а свойства представления не предоставляются. Каков будет рекомендуемый способ сделать это?
У меня есть две проблемы:
- Когда я загружаю новые данные (событие, переопределение метода и т. Д.)
- Как получить видимый диапазон времени (параметр, свойство планировщика и т. Д.)
2 ответа
Вот как мы это реализовали:
- Мы подключились к событию "навигация" планировщика, где мы устанавливаем временные рамки для загрузки (например, текущее время, длительность просмотра)
- Мы реализовали пользовательский транспорт, который запрашивает только события в настройке таймфрейма в 1)
- Мы вызываем dataSource.read, когда происходит событие навигации
Поскольку мы используем AngularJS, все это делается через объект конфигурации, и настройка таймфрейма является глобальной для области действия контроллера, содержащего планировщик.
Создайте свой собственный источник данных для виджета, затем установите его
var dataSource = new kendo.data.SchedulerDataSource();
for (var i = 0; i < 7; i++) {
dataSource.add({
id: i, // Sunday = 0
start: date_start,
end: date_end,
title: title,
isAllDay: isAllDay,
});
}
var scheduler = $("#schedule").data("kendoScheduler");
scheduler.setDataSource(dataSource);