【问题标题】:a4j:poll - reloading data modela4j:poll - 重新加载数据模型
【发布时间】:2012-08-19 16:16:17
【问题描述】:

我正在尝试使用a4j:poll 组件在一段时间后重新加载数据表。它工作正常,但是当表自动重新加载并且我在最后一列中使用工具(编辑/删除行)时,数据表(所有行)消失了,我必须手动加载它(使用h:commandButton)..

这是我的部分代码:

<h:form>
  <a4j:poll id="poll" interval="30000" action="#{bean.load}" enabled="#{bean.pollEnabled}" render="list" />
</h:form>

<h:form id="list" ...>
 <rich:dataTable id="table" var="item" value="#{bean.model}">
 ...

调用相同加载方法的按钮:

  <h:commandButton id="btn" action="#{bean.load}" ... /> 

当我使用按钮重新加载它时,我可以使用最后一列中的工具。你不知道为什么吗?

更新:

  • 似乎在第一种情况下(a4j:poll),在使用编辑/删除时,会调用 bean 的构造函数........
  • 豆是@ViewScoped

【问题讨论】:

  • 如果把它们放在同一个表格里呢?
  • 你真的是最伟大的!:-) 谢谢,它有效。请创建一个答案以接受它
  • 好的,我把它作为答案转发了:)

标签: ajax jsf jsf-2 richfaces


【解决方案1】:

似乎在第一种情况下(a4j:poll),当使用编辑/删除时,bean 的构造函数被调用

我不做 RichFaces,但我猜这个问题在某种程度上与 JSF issue 790 相关,这会导致其他表单的视图状态在由单独表单发起的 ajax 请求期间丢失(并且实际上也导致与其他形式相关联的支持 bean 的重建)。这也被描述为commandButton/commandLink/ajax action/listener method not invoked or input value not updated 的第 7 点。

在您的特定情况下,将&lt;a4j:poll&gt; 放在与表格相同的形式应该可以解决问题。我不确定为什么首先将其放在单独的表格中,但这似乎没有必要。

【讨论】:

  • 它是分开的,因为它正在重新加载两个分开的表格(在实际应用中)。所以我认为分开也会更好:-)无论如何,它在表单中效果更好,再次感谢:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-26
  • 2012-06-02
  • 2018-10-02
  • 2013-03-27
  • 2014-07-01
  • 2018-01-28
  • 1970-01-01
相关资源
最近更新 更多