我使用setDataSource()方法设置了我的Kendo Scheduler的数据源,并传入了kendo.data.SchedulerDataSource对象的新实例。我没有使用传输,我直接设置数据属性。这一切都有效,除了一个问题:事件不会立即出现。相反,我必须手动更改月份,在视图刷新之前向前和向后进行一次。
我对这种行为感到有点困惑,尽管我在设置数据源后调用了refresh()方法。
http://docs.telerik.com/kendo-ui/api/javascript/ui/scheduler#methods-refresh
使用当前数据项刷新Scheduler渲染。
有什么建议吗?
答案 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"
]
});