【问题标题】:Kendo UI Scheduler - How do I refresh / Show-hide/ filter the list of resourcesKendo UI Scheduler - 如何刷新/显示隐藏/过滤资源列表
【发布时间】:2018-03-03 02:51:00
【问题描述】:

我有一个配置为时间线的 Kendo UI 调度程序(左侧垂直的单个资源列表,顶部水平的小时块)。我能够使用正确的资源初始化调度程序,但在渲染后我想修改列表(隐藏其中一些),但无法让资源列表自行刷新。

我已经尝试了以下所有组合,但都没有成功刷新列表。

var sched = $("#TimeLineView").data("kendoScheduler");
sched.resources[0].dataSource.read();
sched.resources[0].dataSource.sync();
sched.refresh();
sched.view(sched.view().name);

初始创建

$("#TimeLineView").kendoScheduler({
    date: new Date(),
    timezone: null,
    views: [
        {
            type: "timeline",
            majorTick: 60,
            minorTickCount: 1
        }
    ],
    currentTimeMarker: {
        updateInterval: 120000
    },
    group: {
        resources: ["Users"],
        orientation: "vertical"
    },
    resources: [
        {
            field: "UserId",
            name: "Users",
            dataSource: [
                { value: "Bob" },
                { value: "Rob" }
            ],
            multiple: true,
            title: "Users"
        }
    ],
    height: 500
});

【问题讨论】:

    标签: javascript jquery kendo-ui kendo-asp.net-mvc kendo-scheduler


    【解决方案1】:

    这是用于过滤(显示/隐藏)调度程序资源的DEMO

    下面是DEMO中过滤资源的代码sn-p:

    HTML:

    <input type="button" value="Only show Alex and Rob" id="btn" />
    <input type="button" value="Show Everyone" id="showAll" />
    

    JS:

    $('#showAll').click(function() {
      var showOnly = [];//pass an empty array to show all the resources
      filterSchedulerResources(showOnly);
    });
    
    $("#btn").click(function() {
      var showOnly = ['Alex', 'Rob'];
      filterSchedulerResources(showOnly);
    
    });
    
    function filterSchedulerResources(showOnly)
    {
      console.log('showOnly = ',showOnly);
    
      var filter = {
        logic: "or",
        filters: $.map(showOnly, function(value) {
          return {
            operator: "eq",
            field: "value",
            value: value
          };
        })
      };
    
      var scheduler = $("#scheduler").data("kendoScheduler");  
      //filter the resource data source 
      scheduler.resources[0].dataSource.filter(filter);  
    
      scheduler.view(scheduler.view().name); //refresh the currunt view  
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      • 1970-01-01
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多