2017-09-20 3 views
0

Je crée une datable dynamique en utilisant p: Columns. je veux appliquer la couleur à la ligne basée sur une valeur de colonne dynamiquement, actuellement en mesure de mettre en œuvre sur une colonne,mettre en œuvre la couleur de ligne dynamique basée sur 1 données de colonne en données dynamiques utilisant p; colonnes

veuillez m'aider à définir la couleur sur la ligne de façon dynamique en utilisant des données de colonne. voici le code.

<p:dataTable value="#{sampleMB.rows}" var="row" resizableColumns="true" scrollable="true"> 
       <p:columns value="#{sampleMB.mapperList}" var="column" style="text-align: center; min-width:50px; background-color:#{ 
        row[column] eq 'EXTERNAL' ? 'red' : row[column] eq 'INTERNAL' ? 'green' : ''}" sortBy="#{row[column]}"> 
        <f:facet name="header"> 
         <h:outputText value="#{column}" /> 
        </f:facet> 
        <h:outputText value="#{row[column]}" /> 
       </p:columns> 
         </p:dataTable> 
+1

Essayez tag rowStyleClass de , et vous donner logique https://www.primefaces.org/showcase/ui/data/datatable/rowColor.xhtml –

+0

Je ne peux pas ajouter la logique à rowStyleClass, comme dans la morue ci-dessus e nous obtenons les données des colonnes après itération dans p: colonnes ... les mêmes données comment pouvons-nous utiliser pour rowstyle avant même l'itération. S'il vous plaît fournir un exemple de code si vous avez. – PARMEET

+0

Pouvez-vous mettre plus de code en question, comme votre type de lignes # {sampleMB.rows} et # {sampleMB.mapperList} type de mapperList, leur devrait être d'une certaine façon. –

Répondre

0

Définir combinaison de couleurs souhaitée de couleur dans "td" dans la section STYLE de JSF

<style type="text/css"> 
    .colored td{ 
     background-color: red; 
     color: white; 
    } 
</style> 

utiliser dans dataTable:

<p:dataTable value="dataModelList" var="current" 
    ..... 
    rowStyleClass = "#{BooleanTest ? '' : 'colored'}" 
> 
+0

Et comment faites-vous le booleanTest basé sur la valeur de quelque chose dans le 'p: columns'? – Kukeltje

+0

Voici un exemple: rowStyleClass = "# {current.valid? '': 'Color'}" –

+0

Ce n'est pas ** de la balise columns mais du datatable. Lisez le deuxième commentaire. _ "Je ne peux pas ajouter la logique à rowStyleClass, comme dans le code ci-dessus nous obtenons les données des colonnes après avoir itéré dans p: columns ... les mêmes données que nous pouvons utiliser pour rowstyle avant même l'itération." Sinon, cette question n'était qu'un duplicata d'autres questions – Kukeltje