web-dev-qa-db-fra.com

Set p: dataTable p: largeur de la colonne

J'essaie de définir les largeurs de colonne de ma table de données. J'ai examiné cette question pour une réponse Comment définir la largeur d'une colonne p: dans un p: dataTable dans PrimeFaces 3.0 .

J'essaie cependant de faire quelque chose d'un peu différent. Je veux seulement que la colonne soit aussi large que l'élément le plus large qu'elle affiche. La plupart de mes données sont en texte.

Donc, par exemple, cela ne devrait pas ressembler à ceci

 ----------------------------- 
 | Ceci est du texte | 
 ----------------------------- 

ça devrait ressembler à ça

 --------------------- 
 | Ceci est du texte | 
 --------------------- 

S'il y a plusieurs lignes, la largeur doit être aussi grande que l'élément le plus large.

17
user489041

J'utilise toujours

<p:dataTable ........ tableStyle="width:auto">

Et fait ce que je pense que vous attendez de votre datatable.

44
Maco

Si vous voulez que la largeur de la table reste 100%, utilisez

tableStyle="table-layout: auto;"
30
Szarpul

La réponse de Maco fonctionne à merveille. Cependant, pour ceux dont les colonnes de données et les en-têtes deviennent non alignés, une solution consiste à ajouter un style à chaque <p:column> avec l'attribut min-width souhaité (notez qu'il doit être identique pour tous les <p:column> du <p:dataTable>). Il serait peut-être plus pratique de définir une classe de style dans votre css et de vous y reporter à l’aide de l’attribut styleClass dans <p:column>. De cette manière, si vous décidez de modifier la largeur minimale, il vous suffira de la modifier à un endroit.

<p:column style="min-width: 100px;">
...
</p:column>

Testé en PF 5.3

0
CheshellCat