62 votes

comment donner colspan et rowspan dans JSF panelgrid?

comment donner colspan et rowspan dans JSF panelgrid?

63voto

BalusC Points 498232

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:

  1. Écrire du HTML vous-même. Un <h:panelGrid> essentiellement rend un HTML <table>. Faire la même chose.
  2. Créer un custom HTML convertisseur qui prend en charge cette. Il va cependant être beaucoup de sueur et de douleur.
  3. L'utilisation d'un 3ème partie de la bibliothèque de composants qui la prend en charge.

9voto

Renso Lohuis Points 316

Depuis le 24 janvier 2012, Primefaces a également la possibilité d’utiliser colspan et rowspan dans le composant panelGrid de Primefaces. Voir:

http://www.primefaces.org/showcase-labs/ui/panelGrid.jsf

2voto

V. Petropoulos Points 11

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.

2voto

dmotta Points 563

Utilisez: rich: column colspan = "2" de RichFaces


1voto

alfonx Points 1487

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à.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X