2
各項目(Apple、Banana)ごとに動的なテスト(測定)があり、すべてのテストに2つのプロパティ(必須、表示)があります。私が必要とするのは、これらのテストを列(colspan = 2)とそのプロパティ(colspan = 1)(以下の例を参照)として示す表です。私はテーブルのヘッダー(Primefacesのp:columnGroupを使用して)を行うことはできますが、プロパティリストを反復処理している間は、各Propertyに対して2つの列をどのように満たすかわかりません。動的列を使用したDatatable、オブジェクトごとの複数の列
私が持っている唯一のアイデアは、すべての項目がそれを反復処理し、正しいプロパティを選択するために、いくつかの剰余条件を使用し、二回(直径、直径、長さ、長さ)が存在する新しいリストを作ることです。
XHTML
<p:dataTable var="scenario">
...
<p:columns var="property" value="#{view.getXTimesProperties()}"
columnIndexVar="index">
<c:set var="test" value="#{view.getTest(scenario, property)}"/>
<c:choose>
<c:when test="${index % 2 == 0}">
<h:outputText value="#{test.mandatory}"/>
</c:when>
<c:when test="${index % 2 == 1}">
<h:outputText value="#{test.visible}"/>
</c:when>
</c:choose>
</p:columns>
</p:dataTable>
と表示方法が
public List<Property> getXTimesProperties() {
List<Property> list = new ArrayList<>(properties.size() * 2);
for (Property property : properties) {
list.add(property);
list.add(property);
}
return list;
}
より良い方法はあります:
私の現在のソリューションはありますか?より良いアイデアのために事前に感謝!
coumnsあなたは 'Cを使用することができます(例えば、AJAXを経由して)動的に変更しない場合。各テストでループし、2つの 'coloumn'を作成します – Kukeltje
その提案をありがとうございます!私はp:カラムに集中しすぎていました。これは私にとって完璧です。 –