【问题标题】:How to refresh Kendo Scheduler after setting data source?设置数据源后如何刷新剑道调度器?
【发布时间】:2015-01-22 15:51:59
【问题描述】:

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

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

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

使用当前数据项刷新调度器渲染。

有什么建议吗?

【问题讨论】:

  • 你试过剑道论坛吗?

标签: javascript kendo-ui


【解决方案1】:

似乎我在创建 Kendo 调度程序后不久就调用了 setDataSource。我使用了一个 100 毫秒的 setTimeout() 并且一切正常。一个丑陋的黑客。仍然有兴趣知道是否有更优雅的解决方案。

【讨论】:

    【解决方案2】:

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

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

    摧毁

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

    调用这个方法意味着我们可以使用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"
        ]
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-18
      • 2013-08-29
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      相关资源
      最近更新 更多