2016-12-14 1 views
0

Nous utilisons Kendo Scheduler pour afficher les réservations dans les salles de réunion. Il y a une bonne quantité de données historiques qui ne sont pas nécessaires lorsque le planificateur est chargé, mais l'utilisateur peut facilement naviguer. Pour cette raison, ces événements historiques n'ont pas besoin d'être chargés tant que le Planificateur n'a pas accédé à leur intervalle de temps.KendoUI Scheduler Page Événements par date

Existe-t-il un moyen d'implémenter le paging/filtrage par l'intervalle de temps sélectionné? Ma première supposition serait d'implémenter le transport personnalisé et d'interroger le serveur pour le sous-ensemble correct des réservations, mais la méthode "read" n'est appelée qu'une seule fois et les propriétés de la vue ne sont pas fournies. Quelle serait la manière conseillée de le faire?

Il y a deux questions que j'ai ici:

  1. Quand dois-je charger de nouvelles données (événements, remplacement de la méthode, etc.)
  2. Comment puis-je obtenir l'intervalle de temps qui est visible (paramètre, Planificateur propriété, etc.)

Répondre

2

Voici comment nous avons implémenté ceci:

  1. Nous avons accroché à l'événement "naviguer" du planificateur où nous avons configuré la trame de temps à charger (e.i. heure actuelle, la longueur de vue)
  2. Nous avons implémenté le transport personnalisé qui demande des événements uniquement dans la configuration du délai en 1)
  3. Nous lançons un appel dataSource.read lorsque l'événement navigate est tiré

Comme nous utilisons AngularJS, tout ceci est fait à travers l'objet de configuration et le réglage du temps est global pour la portée du contrôleur contenant le planificateur.

+0

Voilà comment je le ferais. – Shai

0

Créer votre propre source de données pour le widget, réglez alors il

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); 
+0

Oui, c'est une option possible, mais mon problème est quand est-ce que je tire de la base de données et comment puis-je savoir quoi tirer. Le seul moyen que j'ai trouvé jusqu'ici était de se connecter aux événements sur le planificateur et de manipuler directement la source de données, ce qui brise la bonne séparation entre l'accès aux données et l'interface utilisateur des gars de Kendo. –

+0

Je ne suis pas sûr. Avez-vous essayé de poster dans leur forum pour le moment? http://www.telerik.com/forums/kendo-ui/scheduler – xinthose

+0

Non, pas encore. Nous avons créé une solution, dont je ne suis pas très content, mais je l'afficherai ici comme référence. –