我正在寻找一种在jsf primefaces数据表组件中按列(而不是按行)显示数据集合的方法。 例如,我有一个名为User的bean,我想在primefaces数据表中显示User列表:每个User显示在一个单独的列中,每个属性(name,surname,...)在一个单独的行中。 你知道数据表是否可行吗? 谢谢你的回答。
答案 0 :(得分:1)
我认为Primefaces dataTable无法满足您的要求。如果要以横向格式显示数据,可以使用两个嵌套的<ui:repeat>
循环。我将展示一个基本的例子。您可以根据您的要求进行优化:
<h:outputText value="Landscape Tabular Data Representation" />
<table>
<tbody>
<ui:repeat value="#{yourBean.fields}" var="field" >
<tr>
<th style="padding:.4em; background-color:#AFEEEE; border: .3em solid #FFFFFF;">
<h:outputText value="#{field}" />
</th>
<ui:repeat value="#{yourBean.items}" var="item">
<td style="padding:.4em; background-color:#E0FFFF; border: .3em solid #FFFFFF;">
<h:outputText value="#{item[field]}" />
</td>
</ui:repeat>
</tr>
</ui:repeat>
</tbody>
</table>
注意:yourBean.fields
是一个包含item
个属性名称的集合。您可以手动填充它或使用Apache Commons BeanUtils或类似名称来获取名称。如果需要,您还可以创建自己的横向表复合组件。
这是示例输出: