# JSF-Checkboxen in Tabelle mit Buttons dahinter



## Nicnac (31. Mrz 2006)

Hallo,

ich hoffe, mein Problem verständlich formulieren zu können.

Ich habe "Fragen", die man über Checkboxen anwählen kann und über einen weiter-Button werden diese Fragen weiterverarbeitet. Somit sind die Checkboxen auf jeden Fall nötig.
Die Liste der "Fragen" wird dynamisch ausgelesen, sie sind in einer Arraylist ("questionPoolList" ) der bean gespeichert.

Code aus der bean:

```
questionPoolList.add(new SelectItem(question.getId().toString(),question.getText()));
```

JSF:

```
<h:selectManyCheckbox value="#{bean.questionPool}">
<f:selectItems value="#{bean.questionPoolList}" />
</h:selectManyCheckbox>
```
Jetzt möchte ich aber hinter den einzelnen "Fragen"einen Infobutton bzw. Editierbutton haben. Wenn man diesen klickt, kann man die einzelne "Frage" editieren.

Folgende Möglichkeiten sind mir zur Lösung eingefallen.

1. In das SelectItem habe ich versucht, einen Button oder Link zu integrieren, indem ich
einen 
	
	
	
	





```
<h:commandLink value=""...);
```
 ins SelectItem mit hineingeschrieben habe. Dieser wird aber als Text interpretiert und nicht als Link.

...
	
	
	
	





```
SelectItem(question.getId().toString(),question.getCleanedShortText(),<h:commandLink value=""...);
```

2. Ich habe eine separate Buttonliste erstellt. Die Checkboxliste und die Buttonliste werden dann jeweils in einer PanelGrid ausgegeben, was aber eine Zuordnung von Checkboxliste zu dem Button unmöglich macht.

Hat jemand noch einen anderen Ansatz? Das wäre toll.

Vielen Dank
Nicole Schweighardt


----------



## KSG9|sebastian (31. Mrz 2006)

Moinmoin...

schau dir einfach mal das Tutorial hier an: http://javaboutique.internet.com/tutorials/strutsform/

Da stehen für sämtliche Formular-Elemente Samples, Best-Practices u.s.w...


----------



## Nicnac (31. Mrz 2006)

Hallo,

danke schon einmal für die Antwort, allerdings hilft es mir nicht weiter.
Dort geht es um Struts und die strutseigenen Tagslibs.

Bei mir geht es um JSF-Komponenten und deren Kombination. Wie die Komponenten "Checkbox dynamisch erstellen" und die Komponente "DataTable" an sich funktionieren ist mir ja auch einigermaßen klar. Nur nicht beides in Kombination.

Viele Grüße
N.Schweighardt


----------



## Gumble (3. Apr 2006)

vielleicht eine datatable aussen rum, spalte 1 <h:selectBooleanCheckbox>, spalte 2 <h:commandLink>

so koennen halt mehrere 'Zeilen' auf einmal selektiert werden. 
alternativ schreib dir deine eigene Komponente, abgeleitet von UIInput. Spiele damit gerade selber weng rum - sehr spassig  

EDIT:
ah, ich seh gerade, du willst wohl, dass man mehrere Dinge auswaehlen kann, ansonsten wuerde du ja ein <h:selectOneRadio> nehmen. Dann sollte das doch mit der <h:dataTable> gut gehen...


----------



## Nicnac (8. Jun 2006)

Hallo,

danke nochmal für die Anregungen, ich habe nach einigem Hin- und Her eine alternative Lösung gefunden.

Ich fülle einfach zwei Listen. Die erste lese ich über <selectManyCheckbox...> aus. 
Die zweite Liste lese ich mithilfe der DataTable aus, vom Layout her so, daß es direkt hinter den Checkboxen erscheint. 
Mit getRowData() der DataTable kann ich nun die angeklickte Frage (bzw. den angeklickten Button hinter der Frage) ermitteln. 
Außerdem kann ich mehrere Checkboxen aktivieren und über einen "Delete-Button" mehrere Fragen gleichzeitig löschen.

Grüße
N.Schweighardt


----------

