【发布时间】:2016-08-11 04:44:16
【问题描述】:
在我的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>
订单类型标签(第三列)是Enumeration,可以是“鞋子”、“衬衫”或“裤子”。我只想显示带有“鞋子”的行。
尝试将rendered 属性添加到第一个p:outputLabel,当然它只隐藏了这个输出标签。如果我将rendered 属性添加到表格中的每个p:outputLabel,表格中的最低行仍然可见,尽管所有单元格都是空的:
如何使用显示的rendered 属性仅显示特定行?有人可以帮忙吗?
【问题讨论】:
-
如果你只想显示鞋子,为什么不根据这个准备后端的源列表呢? OR:如果您希望能够在客户端进行过滤,为什么不在数据表上使用过滤器(filterBy=...)?
标签: jsf jsf-2 primefaces datatable row