【发布时间】:2012-12-24 01:29:57
【问题描述】:
我有一个丰富的数据表,其中包含可以过滤的列。
<!-- Data table with filters -->
<h:form>
<rich:dataTable value="#{sessionScope.paymentsBean.payments}" var="payment"
id="table">
<rich:column filterBy="#{sessionScope.payment.invoice}" filterEvent="onkeyup">
<f:facet name="header">Invoice</f:facet>
<h:outputText value="#{sessionScope.payment.invoice}" />
</rich:column>
<rich:column filterBy="#{sessionScope.payment.description}" filterEvent="onkeyup">
<f:facet name="header">Description</f:facet>
<h:outputText value="#{sessionScope.payment.description}" />
</rich:column>
<rich:column filterBy="#{sessionScope.payment.amount}" filterEvent="onkeyup">
<f:facet name="header">Amount</f:facet>
<h:outputText value="#{sessionScope.payment.amount}" />
</rich:column>
</rich:dataTable>
</h:form>
<!-- Total -->
<h:outputText id="total" value="#{sessionScope.paymentsBean.total}" >
<f:convertNumber maxFractionDigits="2" type="currency" currencySymbol="$"/>
</h:outputText>
对于总数,我可以将 sessionScope.paymentsBean.payments 中的所有金额相加得到总数。在以下示例中为 355.00 美元。
Invoice Description Amount
1 Cash $5.00
2 Visa $50.00
3 Visa $100.00
4 MasterCard $200.00
Total: $355.00
但是,如果我按“签证”进行过滤,表格和总计将如下所示:
Invoice Description Amount
2 Visa $50.00
3 Visa $100.00
Total: $355.00
总计应该是 150 美元,但 getTotal() 不知道 filterBy 数据。 有没有办法根据rich:datatable中的filterBy标准动态计算总数?
【问题讨论】:
-
你能指定你正在使用的 RichFaces 和 JSF 版本吗?
-
当然,我使用的是 JSF 1.2 和 Richfaces 3.3.3 Final。我无法对这些库进行任何升级,因为这是一个更大项目的一部分,但很高兴知道 JSF 2 或 Richfaces 4 是否支持它。
-
JSF 2 与 PrimeFaces 你可以肯定地做到这一点,因为 Datatable 绑定到两个列表,主列表和过滤列表,所以过滤列表始终在你的支持 bean 中可用。 PF 1.2 和rich 3.3 我想我做了类似的事情,我会看看。
标签: jsf richfaces richdatatable