Est-il possible d'ajouter des clickHandlers (ou n'importe quel type de gestionnaire) aux en-têtes des colonnes dans un CellTable? Je veux ajouter quelques fonctionnalités de tri à mon CellTable et je ne vois aucune méthode dans les classes Column ou Header qui le permettra. J'ai utilisé this post pour comprendre comment utiliser le CellTable.GWT 2.1 Evénements de clic d'en-tête de colonne CellTable
Répondre
Il n'existe pas encore de mode de tri pris en charge sur le CellTable. Cependant, il existe une solution de contournement manuelle impliquant beaucoup de corvée de code. Reportez-vous aux classes SortableHeader
et SortableColumn
dans l'abri à vélo sous l'échantillon des dépenses. Vous trouverez l'utilisation dans com.google.gwt.sample.expenses.gwt.client.ExpenseDetails
. Vous pouvez l'utiliser jusqu'à ce que quelque chose de concret apparaisse dans la prochaine version.
départ répertoire: http://google-web-toolkit.googlecode.com/svn/trunk/bikeshed
Avec la version finale de GWT 2.1, a t-il eu un soutien pour les colonnes triables ajouté au CellTable? Ou est-ce encore un rouleau de votre propre solution après avoir regardé l'exemple bikeshed?
Solution pour les événements de clic:
Header<String> columnHeader = new Header<String>(new ClickableTextCell()) {
@Override
public String getValue() {
return columnName;
}
};
columnHeader.setUpdater(new ValueUpdater<String>() {
@Override
public void update(String value) {
Window.alert("Header clicked!");
}
});
table.addColumn(column, columnHeader);
CellTable<Contact> table = new CellTable<Contact>();
// Create name column.
final TextColumn<Contact> nameColumn = new TextColumn<Contact>() {
@Override
public String getValue(Contact contact) {
return contact.name;
}
};
// Create a data provider.
ListDataProvider<Contact> dataProvider = new ListDataProvider<Contact>();
// Connect the table to the data provider.
dataProvider.addDataDisplay(table);
final List<Contact> list = dataProvider.getList();
for (Contact contact : CONTACTS) {
list.add(contact);
}
final ListHandler<Contact> columnSortHandler = new ListHandler<Contact>(
list);
Header<String> columnHeader = new Header<String>(new ClickableTextCell()) {
@Override
public String getValue() {
return "Name";
}
};
columnHeader.setUpdater(new ValueUpdater<String>() {
@Override
public void update(String value) {
if (Window.confirm("Want to do?")){
nameColumn.setSortable(true);
columnSortHandler.setComparator(nameColumn,
new Comparator<Contact>() {
public int compare(Contact o1, Contact o2) {
if (o1 == o2) {
return 0;
}
// Compare the name columns.
if (o1 != null) {
return (o2 != null) ? o1.name.compareTo(o2.name) : 1;
}
return -1;
}
});
} else nameColumn.setSortable(false);
}
});
// Make the name column sortable.
nameColumn.setSortable(false);
// Create address column.
TextColumn<Contact> addressColumn = new TextColumn<Contact>() {
@Override
public String getValue(Contact contact) {
return contact.address;
}
};
// Add the columns.
table.addColumn(nameColumn, columnHeader);
table.addColumn(addressColumn, "Address");
// Add the data to the data provider, which automatically pushes it to the
// widget.
// Add a ColumnSortEvent.ListHandler to connect sorting to the
// java.util.List.
//------------------ Code to add --------------------------------//
VerticalPanel vp = new VerticalPanel();
table.addColumnSortHandler(columnSortHandler);
//------------------ Code end --------------------------------//
// We know that the data is sorted alphabetically by default.
table.getColumnSortList().push(nameColumn);
// Add it to the root panel.
vp.add(table);
RootPanel.get().add(vp);
- 1. Insérer une ligne manuellement dans CellTable dans GWT 2.1
- 2. GWT CellTable avec en-tête gelé et colonne initiale
- 3. GWT CellTable - ajouter une colonne en fonction de la ligne
- 4. GWT CellTable avec ImageResourceCell
- 5. Comment créer un en-tête gwt 2.1 CellTables?
- 6. GWT 2.1 Arbre ou CellTree?
- 7. GWT 2.1 - Création d'une cellule de barre de progression et des options de DataProviders associées
- 8. RIght-clic dans GWT?
- 9. Comment ajouter scrollbar à celltable
- 10. GWT 2.1 et le plugin Codehaus Maven
- 11. Erreur de table de cellules GWT
- 12. Exemples pour com.google.gwt.app.place à partir de GWT 2.1
- 13. Valeurs de colonne jquery sur clic
- 14. clic d'appel() comme programme dans GWT
- 15. GWT 2.1 Présentation des données Widgets sans pagination
- 16. Evénements de liaison Jquery
- 17. Comment les widgets de présentation de données GWT 2.1 fonctionnent-ils conjointement avec MVP?
- 18. Evénements de composants Adobe Flex
- 19. Evénements de ligne imbriqués GridView
- 20. Evénements déclenchés de façon inattendue
- 21. Evénements de validation MVC ClientSide
- 22. Evénements de test avec nunit
- 23. cellule qui doit Spécifier recevra ensuite dans un CellTable
- 24. Evénements récurrents
- 25. Evénements délégués
- 26. Evénements clavier
- 27. Evénements de bouton à l'intérieur de UIWebView
- 28. Evénements de planification de calendrier Java
- 29. Quel type d'événement est contrôlé par un clic dans gwt
- 30. mise à jour d'une valeur de colonne basée sur une autre valeur de la colonne avec Subsonic 2.1/2.2
On dirait que le lien ne soit plus valide. Essayez celui-ci http://code.google.com/p/google-web-toolkit/source/browse/branches/2.1/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/ – stuff22
@ stuff22 réponse éditée. –