La pagination est-elle prise en charge dans GWT? Est-ce que GWT fournit un élément GUI GWT?Pagination dans GWT
Répondre
Suggestion est que l'utilisation
GWT-Ext ou SmartGWT
qui fournit divers composants, y compris la pagination locale et la pagination à distance, qui peut sauver votre huile de minuit brûlant.
Vous pouvez toujours étendre un composant et ajouter des fonctionnalités par vous-même ou, comme le dit @ankit, utiliser smartgwt. Rappelez-vous, l'un des avantages GWT, est la possibilité d'ajouter des fonctionnalités aux composants par défaut, profitez-en.
[modifier] autre chose que je me souviens maintenant, jetez un oeil à ceci: Comme @ caarlos0 mentionné http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable
, CellTable est un bon début. Vous pouvez également jeter un oeil à GWT SimplePager et AsyncDataProvider. Fondamentalement, un SimplePager sera lié à un CellTable (ou n'importe quel widget Cell) et AsyncDataProvider. Si un événement de changement de page est déclenché (comme l'utilisateur clique sur la page suivante), onRangeChanged() sera appelé dans AsyncDataProvider, et vous pouvez personnaliser le comportement de pagination dans cette fonction.
Si vous avez besoin d'une pagination de table, vous pouvez essayer le widget GWT appelé "CellTable". C'est une table personnalisable qui supporte facilement la pagination.
Vous pouvez trouver plus d'informations ici (page javadoc): http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/user/cellview/client/CellTable.html
Et ceci est un exemple de la façon dont l'utiliser: http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable
Je suggère d'utiliser quelque chose comme Ext-GWT. Il fournit des mécanismes intégrés pour gérer la pagination. Vous pouvez avoir une vue sur la grille qui prend en charge locale Pagination (toutes les données sont recueillies dans un appel, mais divisé en différentes pages) ou à distance Pagination (appel de données est fait chaque fois qu'une nouvelle page est chargée)
Je suggère d'utiliser celltable. C'est assez compliqué à première vue. Mais, une fois que vous y êtes habitué, c'est puissant. CellTable pour plusieurs colonnes CellList pour colonne unique Ne pas essayer CellTree est assez bogué.
tri CellTable et colonne d'info largeur: http://code.google.com/intl/ca/webtoolkit/doc/latest/DevGuideUiCellTable.html
yes.CellTable est vraiment une bonne option pour pagination.Once vous habituer à it.u trouveront très facile à utiliser friendly.use simplePager pour la pagination.
oui, vous avez différentes options différentes comme vous utilisez Widgets cellulaires de GWT, GWT-Ext, GXT pour l'héritier de pagination sont des liens pour la pagination
GWT: http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable
Oui. CellTable et Pager est ce que vous voulez.
https://developers.google.com/web-toolkit/doc/latest/DevGuideUiCellWidgets#Selection_Data_Paging
Vous pouvez étendre AbstractPager si vous voulez avoir plus de contrôle sur l'interface que SimplePager. Ensuite, vous avez juste besoin de surcharger onRangeOrRowCountChanged(). Vous pouvez également mettre en œuvre de belles choses comme le chargement paresseux. Vous pouvez ensuite paginer tout widget qui implémente HasRows.
J'ai essayé la pagination avec Celltable et ça va bien.
Dans votre activité, vous devez faire quelque chose de similaire à ceci:
CellTable table;
@Override
public void start(AcceptsOneWidget panel, EventBus eventBus) {
// Get the table from the view
view.setPresenter(this);
panel.setWidget(view.asWidget());
table=view.getCellTable();
final SingleSelectionModel<Your_Class> selectionModel = new SingleSelectionModel<Your_Class>();
table.setSelectionModel(selectionModel);
selectionModel.addSelectionChangeHandler(
new SelectionChangeEvent.Handler() {
public void onSelectionChange(SelectionChangeEvent event) {
Your_Class selected = selectionModel.getSelectedObject();
if (selected != null) {
// Go to edit screen with selected.getId();
}
}
});
}
Alors à votre avis de mise en œuvre créer les colonnes:
table = new CellTable<Your_Class>();
table.setSelectionModel(new SingleSelectionModel<Your_Class>());
Et enfin mettre la Pagination:
SimplePager pager;
SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class);
pager = new SimplePager(TextLocation.CENTER, pagerResources, true, 0,true);
pager.setDisplay(table);
dataProvider.setList(list_of_data);
pager.setPageSize(number_you_want);
Je sais que la question est assez ancienne mais ceci n'a pas encore été mentionné. Vous pouvez utiliser un ListDataProvider pour gérer la pagination côté client. Il est très facile à utiliser et vous fera gagner beaucoup de temps.
La pagination de début/longueur classique est entièrement prise en charge par les widgets de cellules GWT. Créez simplement un SimplePager et accrochez le RangeChangeEvent. Votre problème sera sur le serveur, en particulier avec les bases de données modernes NoSQL. Alors que la plupart d'entre eux supportent les modificateurs de requête "start" et "limit" de la même manière que JPA/Hibernate, "start" est fortement déconseillé, car il ne peut fonctionner qu'en itérant sur des données inutiles. Considérez continuos blog-syle "défilement" pagination ou "Prev/Next" seulement. Ensuite, vous pouvez l'implémenter en triant le jeu de résultats et en spécifiant des conditions "plus que" ou "plus" - avec "limite".
package com.ravi.gwt.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
import com.ravi.gwt.client.ContactDatabase.ContactInfo;
import com.ravi.gwt.client.ui.MyPaginationDataGrid;
public class GWT11 implements EntryPoint {
public void onModuleLoad() {
MyPaginationDataGrid<ContactInfo> grid = new MyPaginationDataGrid<ContactInfo>();
grid.setHeight("500px");`enter code here`
grid.setDataList(ContactDatabase.get().generateContacts(100));
RootPanel.get().add(grid);
}
}
Au moins ajouter une explication de ce que vous avez fait. – ketan
Q1 est pris en charge GWT pagination?
Oui
Q2 Est-ce que GWT fournit un élément GUI GWT?
Oui
Détails -
Paging est l'opération de chargement et la mise en vue d'une série de données qui ne sont pas actuellement chargé. Q1 - La pagination côté client est entièrement prise en charge par GWT via SimplePager et AbstractPager classes. Si vous cherchez la pagination à distance, vous devrez créer vos propres widgets personnalisés et la logique selon vos besoins.
Exemple:
public class SimplePagerExample implements EntryPoint {
public void onModuleLoad() {
// Create a CellList.
CellList<String> cellList = new CellList<String>(new TextCell());
// Add a cellList to a data provider.
ListDataProvider<String> dataProvider = new ListDataProvider<String>();
List<String> data = dataProvider.getList();
for (int i = 0; i < 200; i++) {
data.add("Item " + i);
}
dataProvider.addDataDisplay(cellList);
// Create a SimplePager.
SimplePager pager = new SimplePager();
// Set the cellList as the display.
pager.setDisplay(cellList);
// Add the pager and list to the page.
VerticalPanel vPanel = new VerticalPanel();
vPanel.add(pager);
vPanel.add(cellList);
RootPanel.get().add(vPanel);
}
}
` Q2SimplePager contient l'étiquette de boutons et le texte que vous pouvez personnaliser selon vos besoins. Pour référence vérifier ce lien http://samples.gwtproject.org/samples/Showcase/Showcase.html#!CwCellTable
Je ne sais pas GWT-Ext mais SmartGWT est un fouillis horrible. Si vous souhaitez détruire les performances de votre site et avoir de nombreux problèmes de confusion, alors SmartGWT est votre bibliothèque. – ZalewaPL