【问题标题】:KendoUI Scheduler Page Events by TimeKendo UI 调度程序页面事件(按时间)
【发布时间】:2016-12-14 21:45:50
【问题描述】:

我们正在使用 Kendo Scheduler 来显示会议室的预订情况。加载调度程序时不需要大量的历史数据,但用户可以轻松浏览。因此,在调度程序导航到它们的时间间隔之前,不需要加载这些历史事件。

有没有办法按选定的时隙实现分页/过滤?我的第一个猜测是实现自定义传输并查询服务器以获取正确的预订子集,但“读取”方法只调用一次,并且不提供视图属性。这样做的建议方法是什么?

这里有两个问题:

  1. 何时加载新数据(事件、方法覆盖等)
  2. 如何获取可见的时间范围(参数、Scheduler 属性等)

【问题讨论】:

    标签: kendo-ui paging kendo-scheduler kendo-datasource


    【解决方案1】:

    我们是这样实现的:

    1. 我们挂钩到调度程序的“导航”事件,在该事件中设置要加载的时间范围(即当前时间、视图长度)
    2. 我们实现了自定义传输,它仅请求 1) 中设置的时间范围内的事件
    3. 当导航事件被触发时,我们调用 dataSource.read

    当我们使用 AngularJS 时,整个事情是通过配置对象完成的,时间框架设置对于包含调度程序的控制器范围是全局的。

    【讨论】:

    • 我就是这样做的。
    【解决方案2】:

    为小部件构建您自己的数据源,然后设置它

    var dataSource = new kendo.data.SchedulerDataSource();
    for (var i = 0; i < 7; i++) {
        dataSource.add({
            id: i,  // Sunday = 0
            start: date_start,
            end: date_end,
            title: title,
            isAllDay: isAllDay,
         });
    }
    var scheduler = $("#schedule").data("kendoScheduler");
    scheduler.setDataSource(dataSource);
    

    【讨论】:

    • 是的,这是一个可能的选择,但我的问题是何时从数据库中提取以及如何找出要提取的内容。到目前为止,我发现的唯一方法是连接调度程序上的事件并直接操作数据源,这完全破坏了 Kendo 家伙所做的数据访问和 UI 的良好分离。
    • 我不确定。你试过在他们的论坛发帖吗? telerik.com/forums/kendo-ui/scheduler
    • 不,还没有。我们创建了一些我不太满意的解决方案,但我会在此处发布作为参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 2017-05-07
    • 2014-02-27
    • 1970-01-01
    • 2013-09-30
    相关资源
    最近更新 更多