基于 JSF 2 中的条件对数据表的行进行着色

发布于 2024-12-25 08:21:19 字数 1056 浏览 2 评论 0原文

我想根据条件更改行的背景颜色。

<t:dataTable id="data"
                styleClass="history-table"
                headerClass="history-table-header"
                rowClasses="history-table-row-default"
                border="2" cellpadding="5" cellspacing="2"
                var="entry"
                value="#{historyBean.logEntryList}"
                preserveDataModel="false"
                rows="#{historyBean.history.rowCount}"
                sortable="true">

           <h:column>
               <f:facet name="header">
                 <h:outputText value="Debug Status" />
               </f:facet>
               <h:outputText value="#{entry.action}" />
           </h:column>

如果“entry.action”的值为 X,我喜欢使用“history-table-row-incomplete”(样式类的名称),如果该值为 YI,我喜欢使用“history-table-row-error”(样式类的名称) )。所有其他情况应使用默认值。

我想我必须以某种方式将当前的条目对象获取到我的bean,对其进行分析并将带有样式类名称的字符串返回到outputText以更改颜色。但我不知道如何...(我是 JSF 的新手...)

有人可以帮助我吗?

I'd like to change the background color of rows based on a condition.

<t:dataTable id="data"
                styleClass="history-table"
                headerClass="history-table-header"
                rowClasses="history-table-row-default"
                border="2" cellpadding="5" cellspacing="2"
                var="entry"
                value="#{historyBean.logEntryList}"
                preserveDataModel="false"
                rows="#{historyBean.history.rowCount}"
                sortable="true">

           <h:column>
               <f:facet name="header">
                 <h:outputText value="Debug Status" />
               </f:facet>
               <h:outputText value="#{entry.action}" />
           </h:column>

If the value of "entry.action" is X I like to use "history-table-row-incomplete" (name of styleclass), if the value is Y I like to use "history-table-row-error" (name of styleclass). All other cases should use the default value.

I guess i have to get the current object of entry somehow to my bean, analyze it and return a string with the name of the stylclass to outputText to change the color. But I don't know how... (I'm new in JSF...)

Can someone help me please?

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

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

发布评论

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

评论(2

辞取 2025-01-01 08:21:19

使用 rowStyleClass 属性而不是 rowClassesrowStyleClassvar="entry" 可用的情况下基于每行进行评估,而 rowClasses 仅在每行上进行评估-表基础。

<t:dataTable ... rowStyleClass="#{entry.action == 'X' ? 'history-table-row-incomplete' : (entry.action == 'Y' ? 'history-table-row-error' : 'history-table-row-default')}">

Use the rowStyleClass attribute of the <t:dataTable> instead of rowClasses. The rowStyleClass is evaluated on a per-row basis where the var="entry" is available, while the rowClasses is only evaluated on a per-table basis.

<t:dataTable ... rowStyleClass="#{entry.action == 'X' ? 'history-table-row-incomplete' : (entry.action == 'Y' ? 'history-table-row-error' : 'history-table-row-default')}">
孤独陪着我 2025-01-01 08:21:19

您可以使用 JSF EL 三元运算符,如下所示:

rowStyleClass="#{entry.action eq X ? 'history-table-row-incomplete' :  (entry.action eq Y ? 'history-table-row-error' : 'default')}"

You can use JSF EL Ternary operator, as below:

rowStyleClass="#{entry.action eq X ? 'history-table-row-incomplete' :  (entry.action eq Y ? 'history-table-row-error' : 'default')}"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文