使用h:dataTable将元素添加到可编辑的表单而不提交所有行

时间:2010-10-04 08:20:48

标签: java jsf datatable jsf-2

只是想知道是否可能使用h:dataTable动态地将元素(以AJAX方式)添加到表单而不总是提交当前内容?通常,必须始终发送数据表的全部内容,因为重新呈现整个数据表。如果数据表变大(例如,100行),这可能会大大减慢页面的速度,因为每行总是会被发布。

使用原始JS执行此操作不是问题,但使用JSF可以避免吗?当然,如果我们不使用AJAX请求发送所有行数据,它仍然是轻量级的,但我们将丢失对表单所做的所有更改。

2 个答案:

答案 0 :(得分:1)

PrimeFaces有一个数据表,可以在不提交当前内容的情况下添加行。

您可以看到datatable ajax示例。

按照getting started的说明进行操作。

答案 1 :(得分:0)

使用JSF,在对其进行更改时重新呈现整个组件,这根本不可能。

在重新呈现整个组件时,除非在刷新之前将它们提交到服务器,否则对它的所有更改都将丢失。

JSF的设计方式不容易实现。对此的一个好的做法是跟踪那些已经修改过的行,然后只提交那些行。这可以通过将更改侦听器附加到表单中的每个字段来实现。