自动计算数据表页脚中具有数字数据的列的总和

Posted

技术标签:

【中文标题】自动计算数据表页脚中具有数字数据的列的总和【英文标题】:Auto calculate total sum of a column with numeric data in datatable footer 【发布时间】:2013-12-25 16:58:57 【问题描述】:

当数字数据列在<p:dataTable>(或<h:dataTable>)中时,是否有任何方法可以在表页脚的摘要行中获取总和,而无需在支持 bean 中计算它并再次将其作为另一个 bean 提供财产?

【问题讨论】:

你试过javascript了吗? 如何使用 Javascript? 【参考方案1】:

如果您的环境支持 Java EE 7 的新 EL 3.0(例如 WildFly 8),那么您可以利用对类似 Java 8 的新支持 Stream and Lambda operations in EL(是的,即使在使用 Java 7 时也可以使用)。

在您的特定情况下,您可以使用相当于 Java 8 的 IntStream#sum()(或 DoubleStream#sum(),取决于属性类型)的 EL 3.0:

<h:dataTable value="#bean.items" var="item">
    <h:column>
        #item.number
    </h:column>
    <f:facet name="footer">
        Total: #bean.items.stream().map(item->item.number).sum()
    </f:facet>
</h:dataTable>

【讨论】:

效果很好,但在过滤数据表时效果不佳。你怎么能管理它?

以上是关于自动计算数据表页脚中具有数字数据的列的总和的主要内容,如果未能解决你的问题,请参考以下文章

初蒙数据表。计算金额并在页脚中显示

初蒙数据表。计算金额并在页脚中显示

基于 2 列的访问报告中相同数据的总和

如何对数据表中特定数据列的值求和

页脚中的 DataTables.net 表列总和

如何计算 LINQ 中 DataTable 的列的总和(到数据集)?