Kendo UI grille: actualisation de la grille de données de toutes les 60 secondes avec les nouvelles données: la source de données et d'observer()
Je veux actualiser le Kendo UI grille du contenu de toutes les 60 secondes avec up-to-the-minute des données.
EDIT: Voici comment la source de données est affecté à la configuration initiale:
parsedData = $.parseJSON(data);
var dataSource = new kendo.data.DataSource({
data: parsedData
});
$("#grid").kendoGrid({
dataSource: dataSource,
. . .
Peut la grille de source de données de simplement être réaffecté dans un seul coup? Ou serait-il préférable de supprimer les éléments dans la base de données.données individuellement, ou par le nettoyage du tableau, puis d'injecter de nouveaux éléments ou de remplacer le tableau dans son intégralité? La mise en oeuvre de l'observer dans le schéma de Kendo de la source de données indiquent une approche plutôt qu'une autre?
Je n'ai pas embarqué sur cela, mais dans mon expérience avec les grilles, aller chemin du retour vers les premiers jours de Visual Basic, la modification d'une grille de source de données a toujours eu des effets secondaires indésirables et je n'ai pas de raison de s'attendre à ce sera plus lisse de navigation. Espérons que je me trompe.
Un AUTRE EDIT# (26 avril 2013): si il ya une approche de l'actualisation de la grille de données sous-jacente avec un nouvel ensemble de lignes ayant la même structure que précédemment, une approche qui permettrait de préserver l'élargissement/effondré état de la grille groupements de, qui serait mieux adapté à nos fins.
- Voulez-vous dire à juste actualiser les données?
- la structure reste la même; le nombre de lignes peut changer, et le contenu des cellules individuelles peuvent différer.
- Utilisez-vous le kendo source de données pour récupérer vos données?
- voir modifier. merci
Vous devez vous connecter pour publier un commentaire.
Nous sommes à l'aide de Kendo 2012.3.1315.340 version et pour nous, cela fonctionne de cette façon:
Comme ce que vous dites est la source de données à lire de données une fois de plus. Nous avons l'habitude de le faire sur le requestEnd gestionnaire d'événement.
J'espère que cela aide quelqu'un.
Pour mettre à jour la source de données de l'utilisation de la grille de la données méthode:
De votre bits de code de l'échantillon, il semble que vos
DataSource
est à l'aide de données locales, de ne pas récupérer des données à distance?Si c'étaient des récupérer des données à distance, vous pouvez simplement appeler:
Et il serait ré-extraction à partir du serveur, ainsi que pour effectuer le solde des mises à jour ou suppressions, si votre grille n'est pas en lecture seule.
Pour l'actualisation des données locales, vous pouvez simplement régler le
.data
bien sur la DaaSource:Je n'ai pas un exemple de travail en face de moi de l'essayer, mais si vos lignes de la grille de ne pas actualiser après la
dataSource.data()
fonction est appelée, alors vous peut également besoin d'appeler d'actualisation sur la grille:grid.dataSource.data(parsedData)
. Le seul inconvénient à ce simple et facile d'approche, et pour nous, c'est un inconvénient majeur, c'est que la grille n'est pas de conserver la mémoire de l'étendue de la écroulée état de groupements..read()
récupère de nouvelles données à partir du serveur..sync()
pousse tout en attendant les mises à jour effectuées sur le client vers le serveur (je ne sais pas si il lit les nouvelles données)..data()
remplace les données avec ce que vous l'obtenez, sans toucher le serveur.De mise à jour de la grille, vous avez besoin pour gérer le changement d'événement sur votre source de données.
Cela devrait mettre à jour votre réseau lorsque vous changez de source de données les données.