2010-08-18 5 views
7

Comment définir la largeur de la colonne pour un rich:column à l'intérieur d'un rich:datatable? L'attribut width est ignoré. Voir le code suivant:largeur de la colonne dans riche: datable

<rich:column label="#{msg[result]}" width="150px"> 
<f:facet name="header"> 
    <h:outputText value="#{veryLongText}"/> 
</f:facet> 
<h:outputText value="#{someValue}" /> 
<f:facet name="footer"> 
    <h:outputText value="#{someValue}" /> 
</f:facet> 
</rich:column> 

Si vous calculez cette colonne et veryLongText est plus large que 150px ne rompt pas dans plusieurs lignes. Au lieu de cela, il ignore simplement la largeur de la colonne et prend autant d'espace que nécessaire.

Comment résoudre ce problème?

Répondre

11

Essayez headerClass du <rich:column>, comme si:

<rich:column headerClass="myWidth"> 
... 
</rich:column> 

Ensuite, dans votre CSS (intégré ou lié):

.myWidth {width:150px} 

Vous pouvez également avoir une infraction à la propriété « white-space » CSS entrée en jeu quelque part, vous pouvez spécifier le sélecteur .myWidth comme si:

.myWidth {width:150px; white-space:normal!important} 
+1

solution parfaite. Merci! – pakore

2

utilisation:

style="width:150px"

ou styleClass="myColumnClass" où vous ajoutez dans votre attribut CSS

.myColumnClass{ 
width: 150px; 
} 
+0

Nop, cela ne fonctionne pas. La largeur de la colonne est toujours aussi large que 'veryLongText'. – pakore

1

vous pouvez utiliser ceci:

<rich:column width="60px"> 
    <f:facet name="header"> 
     <h:outputText value="#{veryLongText}" /> 
    </f:facet> 
    <div style="overflow:hidden;width:60px"> 
     <h:outputText value="#{someValue}" /> 
    </div> 
</rich:column> 
3

Si vous souhaitez obtenir des colonnes avec utilisation word-wrap ce une ....

<div style="overflow: hidden;width: 300px;word-wrap: break-word; "> 
    <h:outputText value="#{someValue}" /> 
</div> 

Il est testé sur Mozilla et IE 8.0.

Questions connexes