1

J'ai un planificateur d'interface utilisateur Kendo configuré comme un calendrier (une seule liste de ressources verticalement sur la gauche, et des heures bloque horizontalement le long de la partie supérieure) . Je suis capable d'initialiser le planificateur avec les ressources correctes mais après rendu je veux modifier la liste (cacher certains d'entre eux), mais j'ai été incapable d'obtenir la liste des ressources pour se rafraîchir soi-même.Kendo UI Scheduler - Comment actualiser/Show-hide/filter la liste des ressources

J'ai essayé toutes les combinaisons suivantes, mais aucune n'a réussi à rafraîchir la liste.

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

Création initiale

$("#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 
}); 

Répondre

2

Voici le DEMO pour le filtrage (affichage/masquage) des ressources du planificateur.

est Ci-dessous l'extrait de code de la DEMO qui filtre les ressources:

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 
}