2010-12-17 5 views
29

द्वारा कई तत्वों के जेएसएफ (प्राइमफेस) AJAX अद्यतन JSF.Particularly, प्राइमफेस से संबंधित एक और सवाल।
आईडी के साथ एक ही समय में तत्वों के 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> 

यहाँ तत्व पहले चला जाता है, तो आईडी "उप-योग" के साथ तत्व दूसरा चला जाता है। मामले में, पृष्ठ के तत्वों को कड़ाई से एक एक करके, "उप-योग" के साथ कि दूसरा तत्व आईडी अपडेट किया जाता है नहीं है नहीं:

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

यह सामान्य व्यवहार है या मैं कुछ मानकों को याद?

उत्तर

64

होने वाली अद्यतन घटक ही NamingContainer घटक (ui:repeat, h:form, h:dataTable, आदि) के अंदर नहीं है, तो आप "पूर्ण" ग्राहक आईडी निर्दिष्ट करने के लिए की जरूरत है। रूट से शुरू करने के लिए : (डिफ़ॉल्ट NamingContainer विभाजक चरित्र) के साथ उपसर्ग।

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

, यह सुनिश्चित हो वास्तविक मूल्य के लिए उत्पन्न HTML में subTotal घटक के ग्राहक आईडी की जाँच करें। यदि यह उदाहरण के लिए h:form के अंदर है, तो यह इसके क्लाइंट आईडी के साथ भी पूर्ववर्ती है और आपको इसके अनुसार इसे ठीक करने की आवश्यकता होगी। आईडी की

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

अंतरिक्ष जुदाई अधिक <f:ajax> के रूप में सिफारिश की है अल्पविराम जुदाई का समर्थन नहीं करता और शुरुआत अन्यथा भ्रमित हो जाएगा।

+4

आईडी के अल्पविराम को सही तरीके से अलग करना है? मैं हमेशा रिक्त स्थान का उपयोग करता हूं और कभी भी समस्या नहीं होती। – alfonx

+23

@alfonx: ' 'दोनों के लिए मान्य हैं। ' 'के लिए केवल रिक्त स्थान मान्य हैं। – BalusC

संबंधित मुद्दे