中的 Primefaces 条件逻辑

发布于 2024-10-14 13:49:38 字数 1294 浏览 1 评论 0原文

我有一个数据表,每列有两个图像,一个显示,另一个隐藏图像不显示。这个想法是,如果属性 #{person.isLocked} 结果集设置为“T”,则将隐藏图像显示在其他图像之上。我的代码有一个 div,该 div 中有两个 div,一个用于主图像,另一个用于将要覆盖的图像。 (代码如下)要叠加的图片有一个style属性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>

但这似乎是一个糟糕的设计。我不想仅仅为了显示目的而操纵数据库中的数据。有没有人找到不同的方法来做到这一点?

I have a data table which has two images per column, one that is displayed and also a hidden image that is not. The idea is to dislpay the hidden image on top of the other image if an attribute #{person.isLocked} result set is set to 'T'. My code has a div and within that div has two div's, one for the main image and then one for the image that will be overlayed. (Code below) The image that is to be overlayed has a style attribute display: none; . I need somehow to check to see if the #{person.isLocked} equals 'T', if so then I need to change the css to display:block; else leave it be.

<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>

The only solution I have come up with is instead of storing 'T' or 'F' in the database as #{person.isLocked}, store the css attribute instead, so I would store 'block' or 'none' and then call the person attribute in the style like so.

     <div style="position:absolute: z-index:100; display: #{person.isLocked}">
         <p:graphicImage value="./images/lock.png" cache="true"/>
     </div>

This seems like a bad design though. I don't want to manipulate the data in my database just for display purposes. Has anyone found a different way of doing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

日裸衫吸 2024-10-21 13:49:38

我从未使用过 Primefaces,但你可以尝试一下

<ui:fragment rendered="#{person.isLocked}">
 <!-- your div here -->
</ui fragment>

I've never used Primefaces, but you could try

<ui:fragment rendered="#{person.isLocked}">
 <!-- your div here -->
</ui fragment>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文