【发布时间】:2013-03-12 11:45:43
【问题描述】:
我正在尝试使用 dataTable 的 rowStyleClass 属性将行的颜色设置为红色。条件是比较一个枚举,所以如果 invoice.status eq InvoiceStatus.CANCELLED,那么它应该将 css 类“取消”应用于该行。我认为这可能不是比较枚举与 EL 的正确方法。你能告诉我怎么做吗?
<p:dataTable id="invoicesTable" widgetVar="invoicesTable"
value="#{invoiceManager.invoices}"
var="invoice"
filteredValue = #{invoiceManager.filteredInvoices}"
paginator="true"
rows="15"
paginatorPosition="bottom"
paginatorAlwaysVisible="false"
emptyMessage="#{msg['warning.noData']}"
HERE's THE PROBLEM --> rowStyleClass="#{invoice.status eq CANCELLED ? 'cancelled' : null}">
<f:facet name="header">
<h:outputText value="#{msg['title.invoices']}" />
<p:outputPanel style="position: relative; left: 42%;">
<h:inputText id="globalFilter" onkeyup="invoicesTable.filter()" />
</p:outputPanel>
</f:facet>
<p:column headerText="#{msg['label.number']}" filterBy="#{invoice.number}" filterStyle="display: none;">
<h:outputText value="#{invoice.number}" />
</p:column>
<p:column headerText="#{msg['label.customerName']}">
<h:outputText value="#{invoice.customer.name}" />
</p:column>
<p:column headerText="#{msg['label.action']}" styleClass="actionsColumn">
<p:commandButton process="@this" action="confirmInvoice" icon="ui-icon-search" title="#{msg['button.viewInvoice']}" >
<f:setPropertyActionListener target="#{invoiceManager.invoice}" value="#{invoice}" />
</p:commandButton>
<p:commandButton process="@this" action="#{invoiceManager.changeInvoiceStatus}" icon="ui-icon-flag" title="#{msg['button.changeInvoiceStatus']}" >
<f:setPropertyActionListener target="#{invoiceManager.invoice}" value="#{invoice}" />
</p:commandButton>
</p:column>
</p:dataTable>
【问题讨论】:
-
在我看来,这个问题不需要投票。我认为这个问题是公平有效的。
-
@MagnusTengdahl 通常反对它的人以前没有与 JSF 合作过(否则他们可以在反对时提供评论/答案)。
-
@SerkanArıkuşu 它不是重复的。主要问题是如何为某些行而不是整个数据表定义行样式。
-
问题是关于在 EL 中使用枚举,也是一种最佳实践;对于使用枚举,它是重复的
标签: java jsf primefaces