Skip to main content
 首页 » 编程设计

ajax之使用 f :ajax 渲染多个组件

2024年11月01日25emanlee

错误的代码是:

<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 PrimeFaces process/update and JSF f:ajax execute/render attributes
  • How to find out client ID of component for ajax update/render? Cannot find component with expression "foo" referenced from "bar"