加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:15:40 所属栏目:百科 来源:网络整理
导读:关于JSF的另一个问题。特别是,Primefaces。 有以下问题与ajax更新的元素通过id的同时。 如果页面上的元素一个一个,那个ajax更新执行ok: ui:repeat value="#{showProducts.inCart}" var="cart" tdp:spinner min="0" value="#{cart.count}" immediate="true
关于JSF的另一个问题。特别是,Primefaces。
有以下问题与ajax更新的元素通过id的同时。
如果页面上的元素一个一个,那个ajax更新执行ok:
<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”的元素为第二个。
如果页面上的元素不是严格一个一个,那么带有“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:repeat,h:form,h:dataTable等)内,则需要指定“绝对”客户端ID。前缀为:(默认的NamingContainer分隔符字符)从根开始。
<p:ajax process="@this" update="count :subTotal"/>

要确保,请检查生成的HTML中的subTotal组件的客户端ID以获取实际值。如果它在里面,例如一个h:形式,那么它的前缀与其客户端ID,以及,你将需要相应地修复它。

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

更多建议将ID的空格分隔为< f:ajax>不支持逗号分隔和启动器否则会困惑。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读