2010-12-24 10 views
13

मुझे यकीन नहीं है कि यह व्यवहार सामान्य है या नहीं।
मुझे आशा है कि मेरा panel केवल ajax अनुरोध को ट्रिगर करने वाले बटन पर क्लिक करने के बाद प्रस्तुत किया जाएगा।जेएसएफ 2/प्राइमफेस: पी: पैनल AJAX के साथ प्रस्तुत नहीं किया गया है?

अजाक्स का उपयोग नहीं ठीक काम करता है:

  1. p:panel id="myPanel" rendered="#{myBean.flag}"
  2. p:commandButton ajax="false" action="#{myBean.setFlagToTrue}"
  3. बटन क्लिक करने से पहले, myPanel (flag = false)
  4. प्रदर्शित नहीं किया जाता बटन पर क्लिक, सच करने के लिए ध्वज सेट हो जाएगा, और MyPanel को

AJAX का उपयोग कर दिया गया है विफल रहता है:

  1. p:panel id="myPanel" rendered="#{myBean.flag}"
  2. p:commandButton ajax="true" action="#{myBean.setFlagToTrue}" update="myPanel"
  3. बटन क्लिक करने से पहले, myPanel (flag = false)
  4. प्रदर्शित नहीं किया जाता बटन पर क्लिक, (के रूप में मेरे लॉग फ़ाइल द्वारा प्रदर्शित) सच करने के लिए ध्वज सेट हो जाएगा, और myPanel

मैं प्रदान की गई विशेषता को छोड़ते हुए की कोशिश की है प्रदान की गई है, और वास्तव में ajax काम ठीक है
मैं पैनल के अंदर दिखाई देने वाले परिवर्तनों को देखकर बता सकता हूं।

उत्तर

30

अपने पैनल को दूसरे के अंदर सशर्त प्रतिपादन के साथ रखें और इसे अपडेट करें। इस तरह:

<p:outputPanel id="toUpdate"> 
    <p:panel id="myPanel" rendered="#{myBean.flag}"> 
    </p:panel> 
<p:outputPanel> 

<p:commandButton update="toUpdate"/> 

यह एक ज्ञात मुद्दा है। यदि तत्व डोम में मौजूद नहीं है तो तत्व को अद्यतन नहीं किया जा सकता है।

+0

बहुत अच्छा। जादू की तरह काम करता है। धन्यवाद। – bertie

+1

हमें यह क्यों करना है? – Makky

+0

यह काम करता है, यह कमाल है !! धन्यवाद – Spartan

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

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