我有一个数据表,每列有两个图像,一个显示,还有一个隐藏的图像。如果属性#{person.isLocked}结果集设置为“T”,则想法是将隐藏图像放在另一个图像的顶部。我的代码有一个div,其中div有两个div,一个用于主图像,另一个用于将被覆盖的图像。 (下面的代码)要叠加的图像具有样式属性display:none; 。我需要以某种方式检查#{person.isLocked}是否等于'T',如果是,那么我需要将css更改为display:block;否则就是这样。
<p:dataGrid var="person" value="myBean.people">
<p:column>
<h:panelGird style="margin-left:auto; margin-right:auto;">
<div>
<div style="position:absolute; z-index:1;">
<p:graphicImage value="image?id=#{person.id}" cache="false"/>
</div>
<div style="position:absolute; z-index:100; display: none;">
<p:graphicImage value="./images/lock.png" cache="true"/>
</div>
</div>
</h:panelGrad>
</p:column>
</p:dataGrid>
我提出的唯一解决方案是将数据库中的“T”或“F”存储为#{person.isLocked},而不是存储css属性,因此我会存储“block”或“none”然后像这样调用样式中的person属性。
<div style="position:absolute: z-index:100; display: #{person.isLocked}">
<p:graphicImage value="./images/lock.png" cache="true"/>
</div>
这似乎是一个糟糕的设计。我不想仅仅为了显示目的而操纵我的数据库中的数据。有人发现了不同的做法吗?
答案 0 :(得分:4)
我从未使用过Primefaces,但你可以试试
<ui:fragment rendered="#{person.isLocked}">
<!-- your div here -->
</ui fragment>