Bonjour à tous !
Je cherche à obtenir une CheckboxList avec des scrollbars horizontales et verticales qui n'apparaîtront que si elles sont nécessaires, pour cela j'inclus ma checkboxList dans une div :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <div align="left" style="overflow:auto;width:140px;height:170px;" > <asp:CheckBoxList ID="chkLst1" runat="server" BorderStyle="None" BorderWidth="1px" CellPadding="0" CellSpacing="0"> </asp:CheckBoxList> </div>
Cela fonctionne très bien pour la scrollbar verticale, en effet la hauteur de la checkboxlist va changer en fonction du nombre d'items, et donc la scrollbar de la div apparaitra si la checkboxlist est trop grande.
Par contre ce n'est pas bon pour la scrollbar horizontale, en effet la checkboxlist prend comme largeur maximale celle de la div, et si les items sont trop longs ils sont affichés sur plusieurs lignes, de ce fait la largeur de la checkboxlist ne dépasse jamais celle de la div et la scrollbar de la div n'est jamais affichée.
Je pourrais résoudre ce problème en fixant à ma checkboxlist une largeur "maximale" pour que toutes les valeurs possibles soient toujours affichées sur une seule ligne, sauf que deux raisons m'en empêche :
- Les éléments de la checkboxlist viennent d'une base de donnée, donc cette largeur "maximale" est difficile à établir.
-cette solution afficherait toujours la scollbar horizontale, même lorsqu'elle n'est pas nécessaire.
J'imagine donc deux approches pour résoudre mon problème :
- Imposer à ma checkbox list de s'agrandir automatiquement en largeur plutôt qu'afficher les items sur plusieurs lignes.
- Parcourir tous les items de la checkboxList, "mesurer" la largeur de chaque élément, et affecter a la checkboxList la largeur du plus grand de ses items.
Je n'ai bien sûr aucune idée de la façon d'implémenter l'une ou l'autre de ces solutions, si vous avez des idées elles sont les bienvenues !
Merci d'avance
Partager