如何在设置数据源后刷新Kendo Scheduler?

时间:2015-01-22 15:51:59

标签: javascript kendo-ui

我使用setDataSource()方法设置了我的Kendo Scheduler的数据源,并传入了kendo.data.SchedulerDataSource对象的新实例。我没有使用传输,我直接设置数据属性。这一切都有效,除了一个问题:事件不会立即出现。相反,我必须手动更改月份,在视图刷新之前向前和向后进行一次。

我对这种行为感到有点困惑,尽管我在设置数据源后调用了refresh()方法。

http://docs.telerik.com/kendo-ui/api/javascript/ui/scheduler#methods-refresh

使用当前数据项刷新Scheduler渲染。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

在创建Kendo Scheduler后,我似乎过早地调用了setDataSource。我使用了一个100ms的setTimeout(),一切都很完美。大丑恶的黑客。仍然有兴趣知道是否有更优雅的解决方案。

答案 1 :(得分:0)

setTimeout()方法可能无法保证在正确的时间刷新窗口小部件。

查看Scheduler小部件的destroy()方法。

  

<强>破坏

     

准备小部件以便从DOM安全删除。分离所有事件处理程序并删除jQuery.data属性以避免内存泄漏。调用破坏任何儿童剑道小部件的方法。

调用此方法意味着我们可以使用jQuery安全地清空包含Scheduler的<div>元素。之后,我们可以创建一个新的Kendo Scheduler。

示例:

var scheduler = $("#scheduler").data("kendoScheduler");
scheduler.destroy();
$("#scheduler").empty();
$("#scheduler").kendoScheduler({
    date: Date.now(), // The current date of the scheduler
    dataSource: yourNewDataSource, // The updated data source
    views: [
        "month"
    ]
});