Farbe der Tabellenzellen in "<t:dataTable>"

Status
Nicht offen für weitere Antworten.

smitty

Mitglied
Hallo,

nachdem ich nun lange Zeit hier nur mitgelesen habe, muss ich doch mal eine Frage loswerden.

Ich möchte gern einzelen Zellen einer Tabelle in Abhängigkeit des Inhalts unterschiedlich einfärben. Die einzelnen Zellen beinhalten Integer-Werte, so dass die entsprechende Bedingung denkbar einfach ist. Aber wie erkläre ich das der Zelle? Meine EL-Experimente haben bislang noch nicht gefruchtet, bin für Tipps dankbar!

Viele Grüße!
Martin
 

André Uhres

Top Contributor
Um welche Art Tabelle geht es?

EDIT: sry für die dumme Frage, hab übersehen, daß es der Beitrag in "Enterprise Java" steht.
 

smitty

Mitglied
Hi,

es handelt sich um eine JSF-Anwendung, ich nutze die Tomahawk Komponenten. Der Code sieht etwa so aus:

Code:
<t:dataTable id="myData" var="myValue" rows="20"
  styleClass="standardTable" headerClass="standardTable_Header"
  footerClass="standardTable_Header"
  rowClasses="standardTable_Row1,standardTable_Row2"
  columnClasses="standardTable_Column"
  rendered="#{!empty(MyValuesListBackingBean.itemList)}"
  value="#{MyValuesListBackingBean.itemList}">


  <t:column sortable="true">
    <f:facet name="header">
      <t:outputText value="#{bundleMy.myDataHeaderId}"></t:outputText>
    </f:facet>

<% /* Diese Selle soll je nach Wert verschiedene Farben bekommen */ %>
    <t:outputText value="#{myValue.id}"></t:outputText>

    <f:facet name="footer">
    </f:facet>
    </t:column>
 

smitty

Mitglied
Kurzer Nachtrag, um mein Vorhaben etwas zu verdeutlichen: mein Ziel könnte etwa so aussehen...

... für die Tabellenzelle:

Code:
<t:outputText
  value="#{myValue.mywert}"
  style="${(myValue.mywert > 0.5) ? "font-color:green;" : "font-color:red;"}">
</t:outputText>


... jedoch bekomme ich dann die Fehlermeldung

javax.servlet.ServletException: /jsp/myPages/showData.jsp(100,69) The attribute prefix font-color does not correspond to any imported tag library
javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
 

smitty

Mitglied
so, ich hab einen kleinen Workaround fertiggestellt, der mir aber selber nicht so gut gefällt. Falls jemand noch einen bessern Vorschlag hat, würde ich mich freuen!

Die Zelle wird nun mehrfach angegeben, aber durch entsprechende Methoden in der Bean kann jeweils nur ein Wert angezeigt werden.

Code:
<t:outputText rendered="#{myValue.testTooLow}" value="#{myValue.mywert}" style="color:blue;">
</t:outputText>
<t:outputText rendered="#{myValue.testCorrect}" value="#{myValue.mywert}">
</t:outputText>
<t:outputText rendered="#{myValue.testTooHigh}" value="#{myValue.mywert}" style="color:red;">
</t:outputText>

cu!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben