代码之家  ›  专栏  ›  技术社区  ›  jMarcel

如何在Primefaces数据表中显示图标而不是数据?

  •  0
  • jMarcel  · 技术社区  · 7 年前

    我有一个 Primefaces Datatable 包含一些数据集,哪些值是 0 1. 在其中一列中,这些值用于计算 summary row .

    我想做的是:

    到目前为止,我所取得的成就是使用 条件css :

    <p:dataTable id="datalist"
                 filteredValue="#taxiTripsController.filteredTaxiTrips}"
                 value="#{taxiTripsController.items}"
                 var="item"
                 rowKey="#{item.id}"
                 paginator="true"
                 selectionMode="single"
                 selection="#{taxiTripsController.selected}"
                 widgetVar="txcwv" >
    
    <!--some columns ommited -->
    
    <p:column sortBy="#{item.cr1}" filterBy="#{item.cr1}" >
        <f:facet name="header">
            <h:outputText value="cr1"/>
        </f:facet>
        <h:outputText id="cr1" value="#{item.cr1}" styleClass="#{item.cr1 == 1 ? 'realizado' : null}" title="cr1" />
    </p:column>
    
    </p:dataTable>
    

    css摘录:

    .realizado {
    font: bold 2em/1.35 Arial;
    text-shadow: 4px 4px 10px red;
    icon:url("car.png"); <!-- or some way to use fa fa-car
    }
    

    但不显示图标或图像,只显示文本阴影:

    minimalist Datatable showing text shadow in cr1 column

    有人知道我怎么做吗? 提前谢谢。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Melloware    7 年前

    这很简单,我一直在用代码做这件事。下面的示例显示了基于布尔值的灰色“X”或绿色“检查”。

    <p:column headerText="Boolean" sortBy="#{row.myYn}">
        <i class="fa #{row.myYn ? 'fa-check-circle' : 'fa-times'}" 
           style="color: #{row.myYn ? 'green': 'lightgray'}" />
    </p:column>
    

    因此,在您的情况下,如果您使用的是JSF 2.2,您可以在组件上做一个呈现标志,而不是那样,您可以在组件上添加一个呈现元素 <i> 喜欢

    <p:column headerText="Cars">
        <i class="fa fa-car" jsf:rendered="#{item.cr1 == 1}" />
    </p:column>