# Index im Datatable



## felle (2. Nov 2006)

Hallo,

ich möchte in einer jsp in einer DataTable Elemente in den einzelnen Zeilen mit Javascript Eventhandlern versehen die jeweils eine andere JS-Funktion aufrufen.


...onclick="javascript:foo_1();"...
...onclick="javascript:foo_2();"...

usw.
kann ich in der JSP irgendwie den Tabellenindex mit einbauen. Meine Datatable sieht so aus:

```
<h:dataTable id="allUserRightsTable" value="#{rightsUser}" var="rightsUser" rendered="true" styleClass="listing">
				<h:column>
					<f:facet name="header">
						<h:outputText value="#{msg.userRoles_right}" />
					</f:facet>
					<h:outputText value="#{rightsUser.name}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="#{msg.userRoles_hasright}" />
					</f:facet>
					<h:selectBooleanCheckbox id="user" value="#{rightsUser.hasRight}" onfocus="javascript:foo_X()"/>
				</h:column>
			</h:dataTable>
```
Anstelle von foo_X soll hier dann die entsprechende Funktion foo_1 ... stehen. 



Vielen Dank


----------



## Kotelette (3. Nov 2006)

Hi!

Dann müsstest Du doch wissen, wieviele Zeilen aus dieser dataTable enstehen oder?
Denn für jede Zeile willst Du ja eine neue Funktion (also bei 10 Zeilen 10 Funktionen?!?)...
Ich glaube ich verstehe denn Sinn hinter dieser Anforderung nicht   

Was willst Du denn damit erreichen und was ist, wenn die Tabelle 150 Zeilen produzieren würde?
Hättest Du dann auch 150 Funktionen parat?
Oder willst Du eigentlich eine Funktion mit dem Parameter "index der Zeile" aufrufen?
Vielleicht hilfts, wenn Du das Ziel, das du zu erreichen versuchst, einmal beschreibst!

MfG und so ;-)


----------



## SlaterB (3. Nov 2006)

wie auch immer sollte das x lieber als Parameter übergeben werden,
in der einen JavaScript-Operation kann dann ja gerne aufgeteilt werden:

if (x == 1) {
  foo1();
} else if (x == 2) {
  foo2();
}
usw


----------



## Guest (5. Nov 2006)

Hallo,
also die Anzahl der Zeilen wird in diesem Fall immer fest sein. 
Es würde auch gehen den Zeilenindex als Parameter zu übergeben. 
Meine Frage ist nur wie ich das in dem jsp-Tag schreibe, dass in dem javascript Funktionsaufruf der Tabllenindex übergeben wird. Also ob irgendwas in der Richung möglich ist:

```
<h:selectBooleanCheckbox id="user" value="#{rightsUser.hasRight}" onfocus="javascript:foo(+"dataTable.index"+)"/>
```


----------



## Guest (5. Nov 2006)

Okay ich hab herrausgefunden, is ja ganz einfach:

```
<h:dataTable ... binding="#{table}" ...>
...
<h:selectBooleanCheckbox id="user" value="#{rightsUser.hasRight}" onfocus="javascript:check('#{table.rowIndex}')"/>
...
</h:dataTable>
```


----------

