在 Primefaces 数据中显示列总数 table
Display Column Total in Primefaces data table
将按不同列属性过滤的 Primefaces table 需要有一个摘要行,该行将在用户更改过滤器中的值时更新其值。有什么办法吗?
在 payments.xhtml 中创建一个 Column Group 页脚:
<p:dataTable var="payments" value="#{testBean.payments}" filteredValue="#{testBean.filteredPayments}">
<p:column headerText="Payment status:" filterBy="#{payment.status}">
<h:outputText value="#{payment.status}"/>
</p:column>
<p:columnGroup type="footer">
<p:row>
<p:column colspan="6" headerText="Total: "/>
<p:column colspan="2" headerText="#{testBean.totalPaymentsSum}"/>
</p:row>
</p:columnGroup>
</p:dataTable/>
在TestBean.java中添加一个方法作为getter来计算汇总行:
List<Payment> payments;
List<Payment> filteredPayments;
public String getTotalPaymentsSum() {
int total = 0;
for(Payment payment : filteredPayments) {
total += payment.getAmount();
}
return new DecimalFormat("###,###.###").format(total);
}
有关更多过滤器选项,请参阅 Datatable Filter 展示。
如果你有很多数据并且你正在使用数据表Lazy loading,你可以在load()或中计算汇总行filter() 方法。
将按不同列属性过滤的 Primefaces table 需要有一个摘要行,该行将在用户更改过滤器中的值时更新其值。有什么办法吗?
在 payments.xhtml 中创建一个 Column Group 页脚:
<p:dataTable var="payments" value="#{testBean.payments}" filteredValue="#{testBean.filteredPayments}">
<p:column headerText="Payment status:" filterBy="#{payment.status}">
<h:outputText value="#{payment.status}"/>
</p:column>
<p:columnGroup type="footer">
<p:row>
<p:column colspan="6" headerText="Total: "/>
<p:column colspan="2" headerText="#{testBean.totalPaymentsSum}"/>
</p:row>
</p:columnGroup>
</p:dataTable/>
在TestBean.java中添加一个方法作为getter来计算汇总行:
List<Payment> payments;
List<Payment> filteredPayments;
public String getTotalPaymentsSum() {
int total = 0;
for(Payment payment : filteredPayments) {
total += payment.getAmount();
}
return new DecimalFormat("###,###.###").format(total);
}
有关更多过滤器选项,请参阅 Datatable Filter 展示。
如果你有很多数据并且你正在使用数据表Lazy loading,你可以在load()或中计算汇总行filter() 方法。