Bonsoir,
Je voudrais savoir comment ajouter un scroll vertical au composant dataTable.
Merci
Bonsoir,
Je voudrais savoir comment ajouter un scroll vertical au composant dataTable.
Merci
On ne peut pas faire ça simplement...
J'ai 2 solutions à te proposer :
1. Tu entoures toute la datatable par un DIV (<h:panelGroup layout="block" ...>) où tu définis (en CSS) une hauteur donnée, et un overflow: auto. Le problème, c'est que toute la datatable est scrollable, pas seulement le contenu (hors entête donc).
2. Utiliser des composants particuliers qui le permettent, comme le scrollableDatatable de RichFaces.
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
Bonjour, je suis sur le même problème.
J'ai testé la méthode de mettre dans une div mon composant pour faire apparaitre le scroller mais sans trop de résultat.
mon tableau est bien plus grand que mon panelGroup (car il a 3 lignes) mais malgré tout, aucun scroller n'apparait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <h:panelGroup rendered="#{notificationHandler.notification}" id="notificationPanel" layout="block" style="overflow: auto; height: 20px;"> <rich:dataTable value="#{notificationHandler.dataModel}" var="notificationItem" id="tableCourrier" width="100%" rows="10" columnClasses="columns,columns,columns" > <rich:column id="mylettranetNotificationDescription" width="400px"> <h:outputText value="#{notificationItem.description}" /> </rich:column> </rich:dataTable> </h:panelGroup>
Je suis sous Firefox, je ne sais pas si ça a une incidence... si oui, comment faire ?
et avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part style="overflow: scroll; height: 20px;"
Articles: Richfaces - JBosstools pour JSF.
Merci pour cette réponse.
Avec overflow: auto, les scrollbars Horizontal et Vertical s'affichent en permanence.
J'ai réussi à limiter à la verticale en mettant overflow-y: scroll; mais cela ne répond pas entièrement à mon besoin car j'aurais aimé la voir disparaitre lorsqu'elle devient inutile.
tu peux faire ceci (c'est un peu tordu mais ça devrait marcher):
- déclarer 1 classe dans un fichier CSS avec overflow-y: scroll; (et d'autre chose si tu en as besoin)
- dans l'attribut styleClass tu peux mettre quelque chose du genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2styleClass="#{monBean.condition==true ? maClassCss : '' }"
Tu as raison, c'est tordu.
En fait dans ta solution, je retire la gestion du scrollbar de mon navigateur pour m'en occuper moi-même... pourquoi pas même si ça m'oblige à faire un traitement supplémentaire pour savoir quand je dois afficher ou non la scrollbar.
Je l'implémenterais si aucune autre proposition plus simple n'a été présentée.
En tout cas, tu m'auras appris qu'on peut faire des Conditionnelles en EL... ça je l'ignorais.
il me semble que cela est possible (en ce qui concerne l'opérateur ternaire) mais je n'en suis pas sûr à 100%, c'est à tester.
Ce dont je suis sûr c'est que tu peux utiliser des conditions dans les attributs tels que rendered tu peux avoir par exemple #{monBean.maCondition == true}.
Partager