错误的代码是:
<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”