我有一個豐富的數據表,可以過濾列。rich:dataTable從filterBy列獲得總數
<!-- 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是否支持它。 –
帶有PrimeFaces的JSF 2您可以確實這樣做,因爲Datatable綁定到兩個列表,主列表和過濾列表,因此您的支持bean中始終有可用的過濾列表。隨着PF 1.2和豐富的3.3,我想我做了類似的事情,我會看看。 –