将布尔值显示为图标



我有5列的DataTable。其中一列是布尔值——true或false。我想显示图标,而不是"真"或"假"文字。如何将布尔值显示为图标?

这很简单。您只需使用渲染的属性。试试下面的代码:

<h:column> 
   <f:facet name="header">Col Name</f:facet> 
     <h:graphicImage value="../image1.jpg" rendered="#{yourBoolean}" /> 
     <h:graphicImage value="../image2.jpg" rendered="#{!yourBoolean}" /> 
</h:column>

这可以通过使用图形图像标签的rendered的属性来实现:

<h:dataTable value="#{managedBean.yourList}" var="list" rules="all" >    
    <h:column>
    ...
    </h:column>
    <h:column>
          <f:facet name="header">Your column name</f:facet>
          <h:graphicImage rendered="#{list.yourBoolean eq true}" library="images/SomeFolder" name="someTrueImage.png" />
          <h:graphicImage rendered="#{list.yourBoolean eq false}" library="images/SomeFolder" name="someFalseImage.png" />
    </h:column>
    <h:column>
    ...
    </h:column>
</h:dataTable>

您可以使用rendered属性(正如您在其他答案中看到的那样),或者使用三元运算符将条件合并到value标记中:

<h:graphicImage value="#{yourBoolean ? image1.png : image2.png}" />

最好的(IMO)是:

<h:dataTable value="#{myBean.myList}" var="myVarName">  

。..…

<h:panelGroup styleClass="#{myVarName.myBoolean?'myTrueClass':'myFalseClass'}"/>

where in css

.myTrueClass {
    width: 16px;
    height: 16px;
    background-image:url('../resources/images/myTrue.png');
}
.myFalseClass {
    width: 16px;
    height: 16px;
    background-image:url('../resources/images/myFalse.png');
}

通过使用css,你会让你的生活更容易…更容易维护

相关内容

  • 没有找到相关文章

最新更新