0

J'essaie actuellement d'implémenter un frontal gwt pour mon application Web qui est construite sur le magasin de données. Je voudrais avoir quelque chose comme mon AsyncServices (gin) obtenir les données du serveur et afficher ces données dans un Celltable. Étant donné que mes ensembles de données peuvent être très volumineux, je voudrais que les données soient récupérées chaque fois que l'utilisateur appuie sur le bouton Suivant de la page.Intégration de Google App Engine à GWT Celltable pour les grands ensembles de données

private CellTable table = new CellTable(); scheduleTable = new CellTable();

SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class); pager = new SimplePager(TextLocation.CENTER, pagerResources, false, 0, true); pager.setDisplay(table);

provider = new AsyncDataProvider() { @Override protected void onRangeChanged(HasData display) { //TODO: Get and Show the appropriate data from GAE here! } };

provider.addDataDisplay(table);

Répondre

1

Oui, il est possible. Et voici comment je l'ai fait.

Mettre en œuvre un pager abstrait. J'ai dû créer un widget composite et initialiser le widget dans le constructeur.

J'avais utilisé deux boutons & une étiquette pour paginer précédent et suivant et montrant la page respectivement. Et dans le clickHandler du bouton suivant, j'appelle un RPC et j'obtiens la liste des données que je veux montrer. Ajoutez ensuite la liste à la liste existante du fournisseur de données de la table de cellules. Appelez ensuite la méthode de vidage du fournisseur de données. Cela va pousser les changements sur l'affichage qui est la table de la cellule. Incase votre table de cellules ne reflète toujours pas les données, ce qu'elle devrait, juste vider le fournisseur de données à nouveau ou utiliser le setPageStart & setPageSize pour la table et définir le newrange.

Vous devez remplacer le onRangeOrRowCountChanged où vous affichez la page dans laquelle vous vous trouvez et faites ce que votre téléavertisseur pourrait faire.

Pour le bouton précédent, appelez this.previous() car le pager abstrait offre toutes les fonctionnalités dont vous avez besoin. Au lieu d'utiliser this.next(), nous utilisons notre propre fonction pour peupler la table. et passez à la page suivante.

Questions connexes