Gwt celltable appelle le tri sur une colonne
J'ai une Gwt celltable. En cliquant sur les en-têtes trie les colonnes correctement.
Mais au chargement de la page, les colonnes ne sont pas triées par défaut.
Je veux faire le plus à droite de la colonne à trier lors du chargement de la page.
source d'informationauteur Harpreet | 2011-11-18
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le getColumnSortList() et pousser la colonne que vous souhaitez trier par, en tant que tel:
Le tableau sera trié par la donnée de la colonne dans l'ordre croissant.
L'appel de cette méthode deux fois, va déclencher une vérification pour des tests, si la colonne donnée déjà poussé à la liste, et si oui, il obtient triés par ordre décroissant, afin d'obtenir la table triée par la colonne par ordre décroissant d'utilisation:
Derrière la scène, La colonne est poussé à l'intérieur de la liste dans le tableau appelé ColumnSortList à la position 0. La même liste est mise à jour sur chaque en-tête de colonne cliquez sur.
Assurez-vous que vous appelez cette méthode après avoir initialisé la colonne.
Pour clarifier un couple de questions /réponses... un
cellTable
's de tri de la liste (comme accessible par legetColumnSortList()
fonction) ne détermine comment l'état de la table en-tête, mais ne fait pas de tri des données.@Z00bs suggéré, il peut être sage de trier les données en externe, si possible. Si vous savez que les données vont être triés à l'avance, alors vous devriez utiliser le
getColumnSortList().clear()
etgetColumnSortList().push()
fonctions à communiquer à vos utilisateurs comment les données sont triées.Si, toutefois, vous voulez le CellTable à fait de trier les données, vous allez avoir besoin de déclencher un événement de force de la CellTable de fait, les données des composants côté client. Pour ce faire, vous pouvez utiliser l'état
ColumnSortEvent.fire()
méthode, en tant que tel:Cela va déclencher un événement qui s'occupe de l'installation de tri de la base de données sur l'état actuel de l'en-tête. Donc, vous pourriez définir le tri initial de l'état de l'en-tête d'abord, puis exécuter la ligne de faire réellement les données de la commande de refléter l'état de tri représenté dans l'en-tête.
Je suggère que vous récupérer les données que vous allez afficher déjà triées. Si c'est le cas, alors vous n'avez qu'à régler correctement l'icône de tri (croissant ou décroissant):
Si les données ne peuvent pas être triés avant de la récupérer, vous pouvez trier la liste de la même manière que vous le faites quand un utilisateur clique sur l'en-tête (
onColumnSort(ColumnSortEvent event)
avec unComparator
) avant de l'afficher.