【发布时间】:2011-10-07 16:52:04
【问题描述】:
有没有办法更新所有组件,还是我必须手动选择每个 id?我有一个 ajax html5 检测脚本,不想通过 id 更新每个组件。
谢谢
【问题讨论】:
有没有办法更新所有组件,还是我必须手动选择每个 id?我有一个 ajax html5 检测脚本,不想通过 id 更新每个组件。
谢谢
【问题讨论】:
只要使用公共父组件的ID即可。
<h:panelGroup id="someParent">
<h:someComponentToUpdate ... />
...
<h:someComponentToUpdate ... />
...
<h:someComponentToUpdate ... />
...
</h:panelGroup>
...
<f:ajax render="someParent" />
或者使用@all刷新整个页面。
<f:ajax render="@all" />
【讨论】:
如果您需要基于事件调用更新,我建议您使用 PrimeFaces。在http://www.primefaces.org/showcase-labs/ui/home.jsf 上查看他们的展示。下面展示了如何在单击按钮时使用更新组件
<p:commandButton value="Test" update="container" actionListener="#{myBean.process}"/>
然后有一个包装容器包裹所有你想更新的组件,就像上面的 BalusC 所示。
<h:panelGroup id="container">
...
// All components you want to update here.
</h:panelGroup>
【讨论】: