Обновление Kendo Scheduler после обновления источника данных

У меня есть следующий пример (модифицированная оригинальная демонстрация из Kendo Scheduler):

http://dojo.telerik.com/AkIGO

В этом примере я создаю массив данных с двумя событиями, которые правильно отображаются в представлении планировщика с правой стороны.

var data = [{ TaskID: 0, OwnerID: 1, Title: "Bowling tournament 6", Start: "2013-06-10T10:30:00", End: "2013-06-10T11:30:00", IsAllDay: false},{ TaskID: 1, OwnerID: 2, Title: "Golf", Start: "2013-06-11T10:30:00", End: "2013-06-11T11:30:00", IsAllDay: false}];

Я включил кнопку, событие которой я перехватываю, а затем расширяю этот массив «данных» еще одним элементом, подобным этому:

data.push({ TaskID: 2, OwnerID: 3, Title: "New Event", Start: "2013-06-12T10:30:00", End: "2013-06-12T11:30:00", IsAllDay: false});
console.log(data);

Журнал console.log массива подтверждает добавление. Поэтому я вызываю следующий код обновления:

$("#scheduler").data("kendoScheduler").refresh();

... который не обновляет мое представление планировщика справа, чтобы включить новое событие (созданное в среду 6/12).

Я также пробовал:

$('#scheduler').data('kendoScheduler').dataSource.read();

но это приводит к ошибке.

Есть идеи?


person DavidDunham    schedule 02.03.2015    source источник


Ответы (3)


Команда для обновления текущего представления планировщика:

var scheduler = $('#scheduler').data('kendoScheduler');
scheduler.view(scheduler.view().name);
person Incognito    schedule 23.04.2015
comment
@Silvanmidix: планировщик не показывает первые 2 события: турнир по боулингу 6 и гольф, которые должны отображаться при загрузке планировщика. так что сначала нужно исправить. (Что-то не так с dataSource: {data:data} я думаю). Другое дело, когда вы вставили свою новую запись в данные, проверьте, правильно ли она вставлена ​​или нет, потому что я думаю, что вам тоже нужна команда расширения. Ниже показано, как я это сделал. Надеюсь, я чем-то помог. - person Incognito; 27.04.2015

Рекомендуемый способ добавления события в планировщик кендо и автоматического повторного рендеринга — с помощью метода dataSource.add().

$("#scheduler").data("kendoScheduler").dataSource.add({your data});

https://docs.telerik.com/kendo-ui/api/javascript/data/datasource/methods/add

Обновленный пример здесь: http://dojo.telerik.com/ifeziLiJ

person antman    schedule 17.05.2018

Один из способов обновлять планировщик — использовать SchedulerDataSource и метод setDataSource планировщика (https://docs.telerik.com/kendo-ui/api/javascript/ui/scheduler/methods)./setdatasource).

var dataSource = new kendo.data.SchedulerDataSource({
        data: data
    });

$("#scheduler").data("kendoScheduler").setDataSource(dataSource);
person maskier    schedule 06.11.2018