2012-07-01 24 views
5

Tôi đang làm việc trên ứng dụng bảng điều khiển nơi tôi phải truy xuất một tập hợp các bản ghi và hiển thị trong các hộp bảng động. Độ dài khung trang được cố định. bây giờ các cột và hàng có thể được khởi tạo. Nó sẽ giống như mẫu này:Tạo các cột trong bảng động trong JSF

enter image description here

Hiện nay tôi đang sử dụng bảng dữ liệu để hiển thị nhưng nó in tất cả các dữ liệu trong một cột. Làm cách nào để thay đổi mã của tôi thành mẫu trên?

<o:dataTable id="tabBlSearch" var="item" 
    onkeyup="handleLeftRightArrowOnDataTable('frmDashBoard:tabBlSearch')" 
    value="#{bLDashBoardAction.listBondLoc}"> 
    <o:column style="width: 20px;"> 
    <h:outputText value="#{item.awb}" /> 
    </o:column> 
</o:dataTable> 

Trả lời

11

Bạn có thể đạt được điều này với các thành phần JSF chuẩn sử dụng một <h:panelGrid> trong đó <c:forEach> đang được sử dụng để tạo ra các tế bào trong suốt thời gian xem xây dựng. <ui:repeat> sẽ không hoạt động khi chạy trong thời gian hiển thị chế độ xem.

<h:panelGrid columns="5"> 
    <c:forEach items="#{bean.items}" var="item"> 
     <h:panelGroup> 
      <h:outputText value="#{item.value}" /> 
     </h:panelGroup> 
    </c:forEach> 
</h:panelGrid> 

Đối với các thư viện thành phần, tôi không thấy bất cứ điều gì trong OpenFaces' showcase, nhưng PrimeFaces có <p:dataGrid> cho mục đích này chính xác, thậm chí với sự hỗ trợ pagination.

<p:dataGrid columns="5" value="#{bean.items}" var="item"> 
    <p:column> 
     <h:outputText value="#{item.value}" /> 
    </p:column> 
</p:dataGrid> 
Các vấn đề liên quan