2013-04-28 4 views
0

간단히 말해서 어떤 하위 행을 내 p:dataTable에 넣기를 원합니다. 나는 많은 사람들이 구입할 수있는 자동차 목록을 가지고있다. 이것을 데이터 테이블에 표시하고 싶습니다. 첫 번째 행에는 자동차에 대한 정보가 들어 있으며 다음 행에는 구매자에 대한 정보가 들어 있습니다. 이 패턴은 각 자동차에 대해 반복됩니다.PrimeFaces v3.5에서 dataTable 안에 Subrows를 넣는 방법

public class Car {  
    private int id; 
    private String name; 
    private String model; 
    private Buyer[] buyer; 
} 

구매자 콩이

public final class Buyer { 
    private int id; 
    private String name; 
    private String address; 
} 

마지막으로 다음과 같습니다 below-처럼 보이는 - 아래

은 (게터와 세터가 생략되어있다) 구매자의 배열을 가지고있다 내 차 콩입니다 자동차 목록이 들어있는 컨트롤러 -

@ManagedBean 
@ViewScoped 
public class Seller implements Serializable{ 
    private List<Car> list; 
} 

다니엘의 주장에 따르면, 이에이

<p:panel> 
     <h:form> 
      <p:dataTable id="dataTable" var="car" value="#{seller.list}"> 
       <p:column style="width:4%"> 
        <p:rowToggler /> 
       </p:column> 
       <p:column style="width:32%"> 
        <f:facet name="header"> 
         Id 
        </f:facet> 
        <h:outputText value="#{car.id}" /> 
       </p:column> 
       <p:column style="width:32%"> 
        <f:facet name="header"> 
         Name 
        </f:facet> 
        <h:outputText value="#{car.name}" /> 
       </p:column> 
       <p:column style="width:32%"> 
        <f:facet name="header"> 
         Model 
        </f:facet> 
        <h:outputText value="#{car.model}" /> 
       </p:column> 
       <p:rowExpansion> 
        <p:dataTable var="buyer" value="#{car.buyer}"> 
         <p:column headerText="Id"> 
          <h:outputText value="#{buyer.id}" /> 
         </p:column> 
         <p:column headerText="Name"> 
          <h:outputText value="#{buyer.name}" /> 
         </p:column> 
         <p:column headerText="Address"> 
          <h:outputText value="#{buyer.address}" /> 
         </p:column> 
        </p:dataTable> 
       </p:rowExpansion> 
      </p:dataTable> 
     </h:form> 
    </p:panel> 
+0

http://www.primefaces.org/showcase/ui/datatableExpandableRows.jsf – Daniel

+0

@Daniel : 감사합니다 쇼케이스를 위해. 한 가지 간단한 질문입니다. 기본적으로 모든 행을 확장하려면 어떻게해야합니까? –

+0

여기에 한 가지 방법이 있습니다 :'$ (".ui-row-toggler") click();' – Daniel

답변

1

이 쇼케이스의 모든 확장에 관해서는 DataTable - RowExpansion

를 살펴 보자 방법 - ... 한 가지 방법이 될 수 :

는 다음 코드를 사용하여, 일부 JS 파일을 포함

$(document).ready(function() { 
    $(".ui-row-toggler").click(); 
}); 

또는 귀하의 XHTML 페이지에 포함

<h:outputScript target="head"> 
    $(document).ready(function() { $(".ui-row-toggler").click(); }); 
</h:outputScript> 
,

은 행을 확장하기 위해 다른 더 네이티브 API 사용이있을 수 있습니다 (하지만 난 그 익숙하지 않은거야)