comment donner colspan et rowspan dans JSF panelgrid?
Réponses
Trop de publicités?Aucun des deux n'est possible qu'avec la norme ACI mise en œuvre. Il y a 3 façons de résoudre ce problème:
- Écrire du HTML vous-même. Un
<h:panelGrid>
essentiellement rend un HTML<table>
. Faire la même chose. - Créer un custom HTML convertisseur qui prend en charge cette. Il va cependant être beaucoup de sueur et de douleur.
- L'utilisation d'un 3ème partie de la bibliothèque de composants qui la prend en charge.
-
Tomahawk a un
<t:panelGroup>
composant qui prend en chargecolspan
. -
RichFaces a un
<rich:column>
composant qui prend en charge les deuxcolspan
etrowspan
. -
PrimeFaces a un
<p:row>
côté<p:column>
qui est pris en charge dans les deux<p:dataTable>
et<p:panelGrid>
.
-
Tomahawk a un
assumer
a) un fichier de ressources de message avec deux entrées:
key.row = </ td> </ tr> <tr> <td (ignorer les espaces)
key.gt = >
b) row.xhtml
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core" >
<c:forEach begin="0" end="#{colspan-2}">
<h:panelGroup />
</c:forEach>
<h:panelGroup>
<h:outputText value="#{i18n['key.row']}" escape="false" />
<h:outputText value=" colspan='#{colspan}' #{cellAttributes}" />
<h:outputText value="#{i18n['key.gt']}" escape="false" />
<ui:insert />
</h:panelGroup>
</ui:composition>
alors, par exemple
<h:panelGrid columns="3">
<h:outputText value="r1-c1" />
<h:outputText value="r1-c2" />
<h:outputText value="r1-c3" />
<ui:decorate template="/row.xhtml">
<ui:param name="colspan" value="3" />
<ui:param name="cellAttributes" value=" align='center'" />
<div>Hello!!!!!</div>
</ui:decorate>
</h:panelGroup>
imprime un tableau avec 3 lignes:
1) r1-c1, r1-c2, r1-c3
2) 3 cellules vides
3) un centre aligné sur la cellule, ayant le colspan 3 et contenant un bonjour div ..
V.
Je suis d’accord avec la réponse de BalusC et j’aimerais ajouter que la bibliothèque de composants Primefaces JSF2 offre également cette fonctionnalité si vous utilisez son composant p: dataTable . C'est ce qu'on appelle grouper là.