2010-12-13 42 views
0

J'ai un <table>, et dans ce quelques <tr> s. Tout est aligné tant qu'aucun <tr> n'est enveloppé dans <div> ou <span>.Puis-je envelopper <tr> dans quelque chose qui n'influence pas la disposition de la table? (JSF2.0)

Je dois l'emballer parce que j'utilise JSF et je dois rendre cette rangée parfois et parfois pas. Code est:

<table> 
<!-- some other TRs --> 
<h:panelGroup id="wrapping"> 
    <h:panelGroup rendered="#{bean.render}"> 
    <tr> 
     <th> 
     Some label 
     </th> 
     <td> 
     <h:inputText value="#{bean.value}" /> 
     </td> 
    </tr> 
    </h:panelGroup> 
</h:panelGroup> 
</table> 

J'ai besoin « emballage » parce que quand panelGroup intérieure n'est pas rendu, je dois une pièce d'identité au format HTML pour ajax. J'ai besoin également intérieur <h:panelGroup> parce que je dois utiliser l'attribut JSF rendered quelque part, et je ne peux pas l'utiliser sur <tr>.

Le problème est que cette ligne est entourée de <span> et qu'elle n'est plus alignée avec les autres lignes. La même chose à propos de <div>.

Répondre

1

Essayez <thead>, <tbody>, <TFOOTER>

ÉDITÉ

Voici par exemple:

<table> 
<thead id="headForAjax"> <!-- note on this--> 
<!-- some other TRs --> 
<h:panelGroup id="wrapping"> 
    <h:panelGroup rendered="#{bean.render}"> 
    <tr> 
     <th> 
     Some label 
     </th> 
     <td> 
     <h:inputText value="#{bean.value}" /> 
     </td> 
    </tr> 
    </h:panelGroup> 
</h:panelGroup> 
</thead> 
</table> 

thead utilisé pour les lignes d'en-tête de groupe, tbody - vous pouvez utiliser pour grouper des lignes communes, et ainsi de suite

+0

Je ne comprends pas. Pourriez-vous s'il vous plaît fournir un extrait de JSF avec les tags mentionnés? – amorfis

+0

@amorfis - juste un exemple de mot ajouté avec id à utiliser dans ajax – Dewfy

0

Ne mélangez pas les tags JSF et HTML comme ça. Vous êtes en train de casser des abstractions partout et je parie que vous n'aurez jamais un HTML valide de cette façon (c'est la raison pour laquelle votre mise en page se brise). Au lieu d'une table HTML, utilisez un <h:panelGrid> et placez l'attribut rendered sur les composants individuels de cette ligne.

En ce qui concerne l'ID, qu'est-ce que vous en avez besoin? Si c'est pour Ajax supporté par JSF, je ne pense pas que vous pouvez rendre le rendu d'une seule ligne d'une table. Si vous faites Ajax "manuel", vous pouvez utiliser l'attribut rowClasses du panelGrid pour donner une classe distincte <tr>.

+0

ID est pour JSF ajax. Vous pouvez rediffuser une seule ligne, pas de problème ici. Je vais regarder '', merci! – amorfis