S
schaefli
Gast
hallo!
Folgendes Problem:
Wenn ich auf den Button "importieren" klicke, dann möchte ich den boolean-Wert von selected auslesen. Dieser ist immer false, auch wenn ich die checkbox markiere. Beim debuggen bin ich drauf gekommen, dass die setter-Methoden aus der Klasse CWData nie aufgerufen werden! Weiß jemand, an was das liegen könnte?
myDataItem.isSelected() liefert immer false...
Brauche bitte dringend Hilfe!
Folgendes Problem:
Wenn ich auf den Button "importieren" klicke, dann möchte ich den boolean-Wert von selected auslesen. Dieser ist immer false, auch wenn ich die checkbox markiere. Beim debuggen bin ich drauf gekommen, dass die setter-Methoden aus der Klasse CWData nie aufgerufen werden! Weiß jemand, an was das liegen könnte?
Code:
<h:dataTable binding="#{JCWPage.t_importCws}" headerClass="list-header" id="t_importCws" rendered="#{JCWPage.importRender}"
rowClasses="list-row-even,list-row-odd" style="left: 288px; top: 192px; position: absolute" value="#{JCWPage.myDataList}" var="dataList">
<h:column binding="#{JCWPage.c_select}" id="c_select">
<f:facet name="header">
<h:outputText binding="#{JCWPage.outputText7}" id="outputText7" value="Auswählen"/>
</f:facet>
<h:selectBooleanCheckbox binding="#{JCWPage.checkbox1}" id="checkbox1" value="#{dataList.selected}"/>
</h:column>
<h:column binding="#{JCWPage.c_name}" id="c_name">
<f:facet name="header">
<h:outputText binding="#{JCWPage.outputText4}" id="outputText4" value="Name"/>
</f:facet>
<h:outputText binding="#{JCWPage.outputText3}" id="outputText3" value="#{dataList.name}"/>
</h:column>
<h:column binding="#{JCWPage.c_date}" id="c_date">
<f:facet name="header">
<h:outputText binding="#{JCWPage.outputText6}" id="outputText6" value="Erstellungsdatum"/>
</f:facet>
<h:outputText binding="#{JCWPage.outputText5}" id="outputText5" value="#{dataList.date}"/>
</h:column>
</h:dataTable>
Code:
import java.util.List;
public class CWData {
private int id;
private String name;
private String date;
private boolean selected;
/** Creates a new instance of CWData */
public CWData() {
}
public CWData (int id, String name, String date, boolean selected)
{
this.id=id;
this.name=name;
this.date=date;
this.selected=selected;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getDate() {
return date;
}
public boolean isSelected()
{
return selected;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setDate(String date) {
this.date = date;
}
public void setSelected (boolean selected)
{
this.selected = selected;
}
}
Code:
public String b_import_action() {
// TODO: Process the button click action. Return value is a navigation
// case name where null will return to the same page.
importRender=false;
myDataItems = new ArrayList();
System.out.println("MyDataList: " + getMyDataList().size());
for (Iterator iter = getMyDataList().iterator(); iter.hasNext();) {
myDataItem = (CWData) iter.next();
if (myDataItem.isSelected()) {
myDataItems.add(myDataItem);
myDataItem.setSelected(false);
}
}
...
myDataItem.isSelected() liefert immer false...
Brauche bitte dringend Hilfe!