设置数据源后如何刷新剑道计划程序

How to refresh Kendo Scheduler after setting data source?

本文关键字:计划 程序 刷新 数据源 何刷新 设置      更新时间:2023-09-26

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

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

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

使用当前数据项刷新计划程序呈现。

有什么建议吗?

似乎我在创建剑道调度程序后过早地调用了setDataSource。 我使用了 100ms 的 setTimeout(),一切正常。 一个丑陋的黑客。 仍然有兴趣知道是否有更优雅的解决方案。

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

看看调度程序小部件的 destroy() 方法。

摧毁

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

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

例:

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"
    ]
});