使用f:ajax渲染多个组件

错误的代码是:

<h:form id="search_form">
<h:commandButton class="button" value="View" action="#{InfoBean.search}">
    <f:ajax execute="search_form" render="linear1"></f:ajax>
    <f:ajax execute="search_form" render="linear2"></f:ajax>
</h:commandButton>
<p:lineChart id="linear1" value="#{InfoBean.linearModel1}" legendPosition="e"/>
<p:lineChart id="linear2" value="#{InfoBean.linearModel2}" legendPosition="e"/>
</h:form>

我想做的是当我点击commandButton,我想刷新这两个图表。但是现在我使用了两个< ajax>标签,其中第二个不起作用。

那么如何使用ajax来渲染两个图表?

您可以使用单个f:ajax渲染多个组件。只需确保要更新的所有单个组件都有一个ID。在你的样品中,它将像:

<f:ajax execute="search_form" render="linear1 linear2"/>

其中ID需要通过像linear1 linear2这样的空格分隔,而不是像linear1,linear2(只在p:ajax中有效)。

也可以看看:

> Understanding process and update attributes of PrimeFaces
> How to find out client ID of component for ajax update/render? Cannot find component with expression “foo” referenced from “bar”

http://stackoverflow.com/questions/16597542/render-multiple-components-with-fajax

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:使用f:ajax渲染多个组件