仅为查看目的向dataTable添加元素

时间:2013-04-16 12:43:11

标签: jsf datatable

对于这个令人困惑的标题我很抱歉,我真的无法想到一个更好的标题。

我有以下问题:

我的视图中的列表显示在dataTable上,一切正常。它是一种付款清单,因此有付款价值,表格和其他详细信息。

现在客户希望我通过付款方式订购,并为其添加小计。我想到的唯一方法就是在列表中添加新项目,以便它们出现在dataTable上,并且运行正常。

问题是这些值只需要存在于那里以供查看,所以每当我将列表发送回服务器进行某些处理时,我都需要忽略这些值。我不想更改所有代码,因此我认为我只是删除' em进行处理,并在返回视图时再次添加&#em;因为我需要更新它们在处理之后也是如此,以至于我没有不一致的值。)

对我来说,最好的方法是什么?识别所有点并调用方法?也许为这个工作创建一个servlet过滤器?有什么建议吗?

以下是表格的示例:

DataTable

1 个答案:

答案 0 :(得分:1)

将它们显示为列的“页脚”方面,而不是列表的一部分。页脚不是基于每行进行评估,而是基于每个表进行评估,因此您可以安全地将其绑定到辅助bean本身的属性而不是迭代列表。

E.g。

<h:dataTable value="#{bean.payments}" var="payment">
    ...
    <h:column>
        #{payment.price}
        <f:facet name="footer">
            #{bean.subtotalPaymentPrice}
        </f:facet>
    </h:column>
</h:dataTable>

更新:根据问题更新,其中包含一个有用的屏幕截图,其中描述的要求比问题中的1000个字段要好得多,不,这不是标准的“开箱即用”标准JSF。根据您的问题历史记录,您使用的是PrimeFaces或至少熟悉它,因此您可能会发现<p:subTable>很有帮助。另请参阅the showcase example