2010-11-01 8 views
6

J'ai besoin de geler la première colonne et la première ligne de données dans un CellTable, afin que les utilisateurs puissent faire défiler les données mais toujours voir les étiquettes sur les "axes". La première colonne doit défiler lorsque l'utilisateur fait défiler vers le haut et vers le bas, et la ligne d'en-tête doit défiler lorsque l'utilisateur fait défiler vers la gauche et la droite. Pensez "Freeze Panes" dans Excel. J'utilise GWT 2.1 et je suis prêt à écrire mon propre widget pour le faire si aucune solution n'existe déjà. Ma question est un deux-parter:GWT CellTable avec en-tête gelé et colonne initiale

  1. Est-ce que les widgets ont déjà ce comportement?
  2. Des suggestions si je vais implémenter cela moi-même?

Merci!

Répondre

5

J'ai moi-même implémenté une solution. Check out http://larkolicio.us/ScrollTable/ExperimentTables.html

C'est un LayoutPanel avec trois AbsolutePanels à l'intérieur. Les colonnes gelées sont un CellTable, la partie principale est un CellTable, et l'en-tête est une Grille - je ne pourrais trouver aucun moyen de définir la largeur d'une colonne CellTable! Un ScrollHandler relie la partie principale aux deux parties gelées. Il y a un peu de retard - j'apprécierais que quelqu'un puisse trouver un moyen de se débarrasser du décalage entre les sections. Je l'ai fait fonctionner à un point que je pourrais l'utiliser, et arrêté. Ce n'est pas un widget à usage général. N'hésitez pas à l'utiliser à vos risques et périls.

0

Cette implémentation est plutôt bonne. Je viens de le tester. Il a toutefois besoin de quelques modifications pour prendre en charge le chargement asynchrone. GWT Issue 188 couvrant une requête similaire pour enhacement a été créé le Oct 2006 ?!

Merci pour le partage.

+0

J'ai utilisé cette implémentation depuis quelques mois maintenant et je suis devenu de plus en plus frustré par les problèmes de dimensionnement. J'ai fini par spécifier une hauteur et une largeur constantes pour les cellules internes, ce qui le rend beaucoup plus stable. –

Questions connexes