私は単にいくつかのサブ行を私のp:dataTable
. 私は何人でも買える車のリストを持っています。これをデータテーブルに表示したい。最初の行には車に関する情報が含まれており、次の行には購入者に関する情報が含まれています。このパターンは各車で繰り返されます。
以下は、バイヤーの配列を持つ私の車の豆です(ゲッターとセッターはここでは省略されています)-
public class Car {
private int id;
private String name;
private String model;
private Buyer[] buyer;
}
Buyer Bean は以下のようになります。
public final class Buyer {
private int id;
private String name;
private String address;
}
最後に、車のリストを含むコントローラーを以下に示します。
@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>