Joh*_*ohn 2 datatable jsf row primefaces jsf-2
在我的内心p:dataTable,我试图只渲染我需要的行.码:
<h:form id="f">
<p:dataTable var="order"
value="#{mbOrderController.ordersList}">
<f:facet name="header">#{msg.orders}</f:facet>
<p:column sortBy="#{order.orderNr}"
headerText="#{msg.order_number}">
<p:outputLabel value="#{order.orderNr}"
rendered="#{order.type.label == 'Shoes'}" />
</p:column>
<p:column sortBy="#{order.date}" headerText="#{msg.date}">
<p:outputLabel value="#{order.date}">
<f:convertDateTime pattern="dd.MM.yy" />
</p:outputLabel>
</p:column>
<p:column sortBy="#{order.type.label}" headerText="#{msg.type}">
<p:outputLabel value="#{order.type.label}" />
</p:column>
</p:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)
订单类型标签(第三列)是一个Enumeration,可以是"鞋子","衬衫"或"裤子".我只想显示带有"Shoes"的行.
试图将rendered属性添加到第一个p:outputLabel当然只隐藏此输出标签的属性.如果我将该rendered属性添加到p:outputLabel表中的每个属性,则表中的最低行仍然可见,尽管所有单元格都是空的:
如何使用显示的rendered属性仅显示特定行?有人可以帮忙吗?
Bal*_*usC 14
在你的尝试中,你确实只是有条件地渲染<td>内容,而不是<tr>.遗憾<tr>的<p:dataTable>是,不可能有条件地渲染a .
你基本上有两个选择:
修复模型,使其完全符合视图的预期.
<p:dataTable value="#{mbOrderController.shoesOrdersList}" var="shoesOrder">
Run Code Online (Sandbox Code Playgroud)用于rowStyleClass通过CSS隐藏或设置特定行的样式.
隐藏:
<p:dataTable ... rowStyleClass="#{order.type.label == 'Shoes' ? 'ui-helper-hidden' : ''}">
Run Code Online (Sandbox Code Playgroud)
造型:
<p:dataTable ... rowStyleClass="#{order.type.label == 'Shoes' ? 'shoeStyle' : ''}">
Run Code Online (Sandbox Code Playgroud)
并在css中定义一个包含'shoeStyle'的类选择器(考虑到css特异性)