2010-12-11 10 views

Répondre

5

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.

+2

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

4

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

6

, 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.

2

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)

4

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.

5

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.

6

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

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.

0

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".

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

Au moins ajouter une explication de ce que vous avez fait. – ketan

1

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

UI of simple pager