2012-08-24 34 views
5

Tôi đang sử dụng datatable và tôi nhận được số cột động. Tôi cố gắng để đưa lặp lại bên trong như theo cách này:jsf lặp lại bên trong datatable

<h:dataTable value="#{movieUserBean.sits}" var="row" 
     rowClasses="oddRows,evenRows" headerClass="header" 
     styleClass="table" cellpadding="5" cellspacing="0"> 

     <ui:repeat value="#{row}" var="sit"> 
      <h:column> 
      <h:selectBooleanCheckbox value= "#{movieUserBean.checked[sit.id]}"/> 
      </h:column> 
     </ui:repeat> 

nào ngồi là một mảng hai chiều, suy nghĩ của tôi là DataTable nên vòng qua ngồi hàng và lặp lại vòng qua tất cả các giá trị bên trong mỗi hàng (đó là một đối tượng có tên là Sit with get method: getId).

Vấn đề là tôi nhận được một bảng trống. Có vẻ như var "sit" không nhận được giá trị. Sự cố có thể xảy ra khi dữ liệu có thể bỏ qua bất kỳ yếu tố nào không nằm trong phạm vi cột không?

Trả lời

0

Một giải pháp đơn giản sẽ là

<table> 
    <ui:repeat value="#{movieUserBean.sits}" var="row"> 
    <tr> 
     <ui:repeat value="#{row}" var="sit"> 
      <td><h:selectBooleanCheckbox value= "#{movieUserBean.checked[sit.id]}"/></td> 
    </ui:repeat> 
    </tr> 
    </ui:repeat> 
</table> 

Nếu bạn có các cột biến mỗi dòng nó có thể mess với phong cách css. Ví dụ: 5 cột trên hàng một và 3 cột trên hàng 2, bạn sẽ tạo kiểu cho chúng như thế nào. Cách tôi nhìn thấy nó bạn muốn hiển thị chỗ ngồi trong một nhà hát chiếm đóng với một hộp kiểm.

Bạn có thể thử sử dụng ui: lặp lại với ul, li hoặc div thay vì đi cùng với bảng. tiếp cận.

Các vấn đề liên quan