JSF(Primefaces)通过ID的几个元素的ajax更新

还有一个关于JSF的问题,特别是Primefaces。
在id的同时更新元素的ajax问题有以下问题。 如果页面上的元素逐个进行,那么ajax更新会执行正常:

<ui:repeat value="#{showProducts.inCart}" var="cart">
 <td><p:spinner min="0" value="#{cart.count}" immediate="true">
 <p:ajax process="@this" update="count,subTotal"/></p:spinner></td>         
 <td><h:outputText value="#{cart.totalPrice}" id="count"/></td>
 <h:outputText value="#{showProducts.subTotal}" id="subTotal"/>      
</ui:repeat>

这里id为“count”的元素首先进入,然后是具有id“subtotal”的元素。 如果页面上的元素不是严格一个一个的,那么带有“小计”id的第二个元素不会被更新:

    <ui:repeat value="#{showProducts.inCart}" var="cart">
      <td><p:spinner min="0" value="#{cart.count}" immediate="true">
<p:ajax process="@this" update="count,subTotal"/></p:spinner></td>         
      <td><h:outputText value="#{cart.totalPrice}" id="count"/></td>
      <td><h:outputText value="#{cart.place}" /></td>
    </ui:repeat>
    <h:outputText value="#{showProducts.subTotal}" id="subTotal"/> 

这是正常行为还是我错过了一些参数?


如果要更新的组件不在相同的NamingContainer组件( ui:repeath:formh:dataTable等)中,则需要指定“绝对”客户端ID。 前缀为:默认的NamingContainer分隔符)从根开始。

<p:ajax process="@this" update="count :subTotal"/>

可以肯定的是,请检查生成的HTML中subTotal组件的客户端ID以获取实际值。 如果它也位于例如h:form中,那么它的前缀也是其客户端ID,因此您需要相应地修复它。

<p:ajax process="@this" update="count :formId:subTotal"/>

更推荐使用空格分隔ID,因为<f:ajax>不支持逗号分隔,否则初学者会感到困惑。

链接地址: http://www.djcxy.com/p/71649.html

上一篇: JSF(Primefaces) ajax update of several elements by ID's

下一篇: jsf message severity