gpt4 book ai didi

jsf - 如何有条件地呈现或设计一行素面数据表?

转载 作者:行者123 更新时间:2023-12-05 01:19:24 25 4
gpt4 key购买 nike

在我的 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在表格中,表格中的最低行仍然可见,尽管所有单元格都为空:

Empty row

如何使用显示的 rendered 仅显示特定行属性?任何人都可以帮忙吗?

最佳答案

在您的尝试中,您确实只是有条件地呈现 <td>内容,而不是 <tr> .有条件地呈现 <tr><p:dataTable>不幸的是,这是不可能的。

您基本上有两种选择:

  • 修复模型,使其正是 View 所期望的。
    <p:dataTable value="#{mbOrderController.shoesOrdersList}" var="shoesOrder">
  • 使用 rowStyleClass通过 CSS 隐藏或设置特定行的样式。

    隐藏:
    <p:dataTable ... rowStyleClass="#{order.type.label == 'Shoes' ? 'ui-helper-hidden' : ''}">

    造型:
    <p:dataTable ... rowStyleClass="#{order.type.label == 'Shoes' ? 'shoeStyle' : ''}">

    并在 css 中定义一个包含 'shoeStyle' 的类选择器(考虑 css specificity)
  • 关于jsf - 如何有条件地呈现或设计一行素面数据表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36711029/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com