我有5列的DataTable。在一列中是布尔值 - true或false。我想显示图标而不是“true”或“false”文字。如何将布尔值显示为图标?
答案 0 :(得分:2)
这很简单。您只需使用呈现的属性。试试这段代码:
<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>
答案 1 :(得分:2)
这可以通过使用图片图片标记的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>
答案 2 :(得分:2)
您可以使用rendered
属性(正如您在其他答案中看到的那样),或使用三元运算符在value
标记内合并条件:
<h:graphicImage value="#{yourBoolean ? image1.png : image2.png}" />
答案 3 :(得分:2)
最好的(IMO)将是:
<h:dataTable value="#{myBean.myList}" var="myVarName">
。 .. ...
<h:panelGroup styleClass="#{myVarName.myBoolean?'myTrueClass':'myFalseClass'}"/>
在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,您将使您的生活更轻松......更容易维护