使用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”

相关文章

$.AJAX()方法中的PROCESSDATA参数 在使用jQuery的$.ajax()方...
form表单提交的几种方式 表单提交方式一:直接利用form表单提...
文章浏览阅读1.3k次。AJAX的无刷新机制使得在注册系统中对于...
文章浏览阅读1.2k次。 本文将解释如何使用AJAX和JSON分析器在...
文章浏览阅读2.2k次。/************************** 创建XML...
文章浏览阅读3.7k次。在ajax应用中,通常一个页面要同时发送...