2010-04-23 41 views

回答

2
<ice:selectManyCheckbox layout="pageDirection" ... 
0

使用selectManyCheckbox和DataTable是最好的方式...

=== Page.xhtml ===

<ice:selectManyCheckbox id="idSelectManyCheckbox" layout="spread" 
    value="#{MyBean.selectedsValuesCheckbox}" > 
    <f:selectItems value="#{MyBean.selectItemsCheck}"/> 
</ice:selectManyCheckbox> 

<ice:dataTable varStatus="rowVar" 
    value="#{MyBean.listOfMyObjects}" var="anyNameVar"> 

    <ice:column> 
     <ice:checkbox for="idSelectManyCheckbox" index="#{rowVar.index}" /> 
    </ice:column> 
    <ice:column> 
     <ice:outputText value="#{anyNameVar.property1}" /> 
    </ice:column> 

    <!-- ... more columns .. --> 
</ice:dataTable> 

=== MyBean.java ===

private List<MyObject> listOfMyObjects = new ArrayList<MyObject>(3); 
private List<String> selectedsValuesCheckbox = new ArrayList<String>(2); 
private SelectItem[] selectItemsCheck = new SelectItem[3]; 

private handleSelectItemsCheck(){ 
    int idx = 0; 
    selectedsValuesCheckbox.add("1"); 
    selectedsValuesCheckbox.add("3"); 
    for (MyObject myObject : listOfMyObjects) { 
     selectItemsCheck[idx++] = 
    new SelectItem(myObject.property1, myObject.property2); // value and label 
    } 
} 

//獲取並設置

================================================== ==============

*you must use layout="spread" in that situation. 
*in the table the checkboxs 1 and 3 will be selected. because "selectedsValuesCheckbox"