Données SlickGrid AJAX
J'essaye de l'AJAX de travail avec SlickGrid. L'exemple donné est codé en dur pour Digg.
Aussi, je ne pense pas que le cache est de travailler dans cet exemple. Et à cause de la Digg limitation du débit, il est difficile de vraiment se sentir pour la façon dont il fonctionne. Comment puis-je configurer SlickGrid pour obtenir des données de ma base de données avec la pagination.
source d'informationauteur Chad
Vous devez vous connecter pour publier un commentaire.
Je suis juste allé à travers, alors voici comment j'ai fait:
Copier le contenu de example6-ajax-loading.html (dans le SlickGrid télécharger) dans votre fichier html - appelons-la mygrid.html (Ou dans votre code qui génère du code html. Dans mon cas, j'utilise CodeIgniter, j'ai donc copié dans mygrid_view.php).
Copie slick.remotemodel.js pour yourRemoteModel.js.
"Mygrid.html" assurez-vous que vous avez le bon chemin d'accès à tous les fichiers javascript. Changement slick.remotemodel.js pour yourRemoteModel.js. Éliminer tous les doublons de scripts - par exemple, si vous êtes déjà en tirant dans une version récente de jQuery puis éliminer la ligne "mygrid.html" qui tire dans jquery-1.4.3.min.js.
"Mygrid.html" changer l'initialisation des "colonnes" de la variable pour faire correspondre les données que vous voulez afficher dans votre base de données. Attention à la propriété de champ. Ce doit être en accord avec les noms de propriété qui sera renvoyée dans la réponse JSON à partir de votre serveur. (*voir la note à ce sujet à la fin).
Dans yourRemoteModel.js, modifiez la variable d'url pour pointer vers votre serveur, en passant les arguments appropriés. Dans mon cas, je passe de la page et les lignes de paramètres de mon serveur comme ceci:
var url = myServerUrl+"?page="+fromPage+"&rows="+(((toPage - fromPage) * PAGESIZE) + PAGESIZE);
Dans yourRemoteModel.js, changer le jsonp appel à ajax - sauf si vous avez besoin pour ce faire inter-domaine, dans ce cas, vous aurez envie de rester avec jsonp, sinon vous pouvez le changer pour ressembler à ceci:
Dans yourRemoteModel.js vous devez maintenant personnaliser le onSuccess() fonction. Suivre le modèle de l'exemple, la définition de de et à soit l'entier des décalages dans les enregistrements de données, les données de réglage.la longueur de la nombre total d'enregistrements, et de définir ensuite le tableau de données. Ce code dépend de la réponse JSON à partir de votre serveur ressemble.
Maintenant écrire le code sur le serveur pour générer la réponse JSON. Comme vous pouvez le voir à partir de l'étape 7, ceci doit inclure l'enregistrement (ou la page) décalage dans les données, et une indication de la façon dont de nombreux dossiers sont à retourner, ainsi qu'un tableau des enregistrements eux-mêmes. Rappelez-vous que chaque champ de chaque enregistrement doit avoir un nom de propriété qui correspond le "champ" paramètre dans vos définitions de colonne (à partir de l'étape 4 ci-dessus). Jetez un oeil à la réponse de Digg comme un exemple:
http://services.digg.com/search/stories?query=apple&offset=0&appkey=http://slickgrid.googlecode.com&type=javascript&callback=cb
Et qui devrait le faire!
*Note: dans mon cas, je ne voulais pas utiliser la bande passante pour le retour de tous ces noms de propriété répété pour chaque enregistrement de la réponse JSON, donc à la place je retourner un tableau des valeurs de l'enregistrement. Je puis définissez la propriété de champ dans la colonne description (étape 4 ci-dessus) pour être un entier décalage dans ce tableau. Ainsi, dans les descriptions de la colonne, au lieu de: "someFieldName", j'ai utiliser le champ:3, puis dans ma télécommande modèle, onSuccess() fonction je suis de données[de+i] = resp.record[i].de données (où .de données est un tableau dans la réponse JSON des valeurs de champ dans l'enregistrement). Jusqu'à présent, cela semble bien fonctionner pour moi (mais peut-être plus difficiles à déboguer si quelque chose se passe mal).
Voir ce pull request Une fonctionnelle AJAX banque de Données Exemple maintenant, à l'aide de HackerNews au lieu de Digg. Vous pouvez télécharger cette Slickgrid et regarder example6-ajax chargement.
A ici des observations importantes sur la pagination+ajax+slickgrid: Google Groupes: SlickGrid Pagination + Ajax + DataView
Pour quelqu'un d'autre à la recherche pour ce faire, découvrez cette fourche de slickgrid. https://github.com/harbulot/SlickGrid
Il ajoute une belle petite Python server pour fournir de l'AJAX backend
Ensuite, allez à
http://127.0.0.1:8000/examples/example6b-ajax-localserver.html
avec votre navigateur.Regarder la Pull Request pour voir ce qui a changé https://github.com/harbulot/SlickGrid/compare/mleibman:master...url_builder