2010-12-17 16 views
29

' a göre birçok elementin güncellenmesi JSF.Particularly, Primefaces ile ilgili bir soru daha.
Öğelerin ajax güncellemesinde kimlik ile aynı anda sorun var. sayfadaki unsurlar ajax güncelleme Tamam gerçekleştirir birer birer, giderse: id "sayısı" ileJSF (Primefaces) ajax ID 'nin

Burada
<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> 

elemanı birinci gider, id "aratoplamlarını" ile daha sonra eleman ikinci gider. durumda , sayfadaki unsurlar birer kesinlikle bir, "aratoplamlarını" ile ikinci öğe kimliği güncelleştirilmezse değildir:

<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"/> 

normal davranış mı yoksa bazı parametreler eksik?

cevap

64

to-güncellenebilir bileşeni aynı NamingContainer bileşenin (ui:repeat, h:form, h:dataTable, vs) içine değilse, o zaman "mutlak" istemci kimliği belirtmeniz gerekir. Kökten başlaması için : (varsayılan NamingContainer ayırıcı karakter) öneki.

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

, emin olmak gerçek değeri için oluşturulmuş HTML subTotal bileşenin müşteri kimliğini kontrol etmek için. Örneğin, içinde h:form varsa, o zaman müşteri kimliğiyle öneklenir ve buna göre düzeltmeniz gerekir. Kimliklerinin

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

Uzay ayırma daha virgül ayrımı desteklemediği <f:ajax> olarak tavsiye edilir ve onbir aksi karışık olacaktır.

+4

Kimliklerin virgülle ayrılması doğru yol mu? Her zaman boşluk kullanırım ve hiç problem yaşamadım. – alfonx

+23

@alfonx: ' 'için her ikisi de geçerlidir. '' için yalnızca boşluk geçerlidir. – BalusC