1

剣道UIスケジューラをタイムラインとして設定しています(リソースを1つ左にリストし、 。私は正しいリソースでスケジューラを初期化することができますが、レンダリング後にリストを変更したい(そのうちのいくつかを非表示にしたい)が、リソースリストを取得して自己をリフレッシュすることができませんでした。剣道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 
}); 

答えて

2

ここスケジューラリソースの(/隠蔽を示す)フィルタリングのDEMOあります。

以下

は、リソースをフィルタリングDEMOからコードスニペットです:

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 
} 
関連する問題