2011-09-02 4 views
1

"rich : DataTable"이있는 페이지가 있습니다. 각 테이블 행에 대해 작업을 실행하기 전에 사용자가 둘 이상의 행을 선택할 수 있도록하는 확인란을 추가했습니다. 선택한 행을 검색하는 방법은 무엇입니까?DataTable에서 선택된 행을 확인하는 방법

답변

0

rich:DataTable 행을 나타내는 POJO에 단지 selected이라고 부르는 부울을 추가하기 만하면됩니다. 그리고, 당신의 콩, POJO를 예를 들어 <rich:dataTable>

내부 <rich:column><h:selectBooleanCheckbox>이 부울을 결합하고보기 좋아하는이 보일 수 있습니다 :

<rich:dataTable value="#{myBean.customerList}" var="customer"> 
    <rich:column> 
    <h:selectBooleanCheckbox value="#{customer.selected}" /> 
    </rich:column>  
    <rich:column> 
    <h:outputText value="#{customer.name}" /> 
    </rich:column> 
    <rich:column> 
    <h:outputText value="#{customer.address}" /> 
    </rich:column> 
</rich:dataTable> 


public class MyBean { 

    private List<Customer> customerList; 

    //getter and setter for the customerList 
} 


public class Customer{ 

    private boolean selected; 
    private String name; 
    private String address; 

    //getter and setter for the properties 
} 

단지를 반복, 선택 된 행을 검색하려면에게 MyBean.customerListCustomerselected 속성이 true인지 확인하십시오.

0

[SOLVED] 달리 결정했습니다. "Map"과 "CheckBox"가있는 열을 이렇게 추가했습니다 : "". 양식을 제출하면 선택한 "Map"행에 부울 속성이 "true"로 표시됩니다.

내 콩 :

public class Bean<T extends Object> { 
    private Map<T, Boolean> selectedRowsMap = new HashMap<T, Boolean>(0); 
    ... 
    public Set<T> getSelectedRows() { 
     selectedRows.clear(); 
     for (T key : getSelectedRowsMap().keySet()) {   
      if (getSelectedRowsMap().get(key) == true){ 
       selectedRows.add(key);    
      } 
     } 

     return selectedRows; 
    } 
} 

내 XHTML :이 문제를 해결하는 경우

<rich:dataTable> 
    <rich:column> 
     <h:selectBooleanCheckbox value="#{bean.selectedRowsMap[row]}" /> 
    </rich:column> 
    <rich:column> 
     <h:outputText value="${row.age}" /> 
    </rich:column> 
    ... 
<rich:dataTable> 
+0

당신이 대답으로 표시해야 – Eonasdan

관련 문제