<JSF> h:dataTable nur eine Reihe highlighten

Abraxxas

Grünschnabel
Hallo,
ich möchte in JSF eine <h:datatable> die einzelne Reihe worüber sich gerade die Maus befindet, den Hintergrund anders einfärben

in normalen HTML wäre es einfach:
Code:
...
<table>
  <tr onmouseout="this.style.backgroundColor='#FFFFFF'" onmouseover="this.style.backgroundColor='#33FF66'">
    <td>custNo</td>
    <td>instidue</td>
    <td>department</td>
  </tr>
....
aber in jsf kann nicht direkt Eigenschaften einer Tabellenreihe bestimmen:
dort werden nur explizit die Spalten angegeben mit <h:column>
Code:
....
<h:dataTable onmouseover="this.style.backgroundColor='#33FF66'" onmouseout="this.style.backgroundColor='#FFFFFF'" cellpadding="3" cellspacing="0" rules="all" styleClass="rahmen" id="customerList" value="#{CustomerBean.allCustomer}" var="cust">
				<h:column>
					<f:facet name="header">
						<h:outputText value="#{Msg.customerNo}"  />
					</f:facet>
					<h:outputText value="#{cust.custNo}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText  value="#{Msg.institude}" />
					</f:facet>
					<h:outputText value="#{cust.institude}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText  value="#{Msg.department}" />
					</f:facet>
					<h:outputText value="#{cust.department }" />
				</h:column>
</h:dataTable>

vllt. hat jmd ja eine Idee

Gruß
Abraxxas
 
Die Verwendung von Tomahawk bringt eine Lösung:

Allerdings musst Du jedem Element das einzeln zuweisen (also nicht wie in HTML, wo Du das für die ganze Zeile bestimmst.

Code:
<t:outputText onmouseover="this.style.backgroundColor='#FFFFFF'" onmouseout="this.style.backgroundColor='#33FF66'" />

Falls mehr als nur ein Element zu highlighten ist, kannst du auch ein panelGroup nehmen.

Es ist allerdings ungetestet.

Oh Mann... Ich bin noch nicht ganz wach... Es geht natürlich auch mit JSF. Du musst allerdings trotzdem jedem Element diese Attribute zuweisen. Sonst geht es nur Programmatisch; dann siehe den Link von Kerwin.
 
Zuletzt bearbeitet:
Hallo danke für eure Vorschläge,

mein Kollege und ich haben es mit der Radiobutton-Methode gemacht, wie von Kervin vorgeschlagen, ohne den Artikel vorher gekannt zuhaben.


Ich habe auch bei anderen Implementierungen nachgelesen, MyFaces hätte wohl eine Möglichkeit es so zumachen wie ich es mir damals vorgestellt habe. Jedoch bekommen wir Eclipse mit MyFaces und einem Tomcat nicht richt zum laufen. Und der Chef möchte auch des wir nur die Implementierung von Sun nutzen.
Falls es aber interresiert hier der Link zu meinem Fund:http://myfaces.apache.org/tomahawk/extDataTable.html

die von mir gewählte Methode wäre:
Code:
[ rowOnMouseOver="javascript" ]

Gruß
Abraxxas
 
Zurück