【问题标题】: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?

标签: jsf primefaces datatable sum el


【解决方案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>

【讨论】:

  • 效果很好,但在过滤数据表时效果不佳。你怎么能管理它?
猜你喜欢
  • 1970-01-01
  • 2018-12-31
  • 2018-11-13
  • 1970-01-01
  • 2011-08-19
  • 2017-03-03
  • 2012-03-24
  • 1970-01-01
  • 2020-10-31
相关资源
最近更新 更多