2012-09-12 11 views
9

के बाद काम करना बंद कर देता है मैं एक डाटाएबल बनाने की कोशिश कर रहा हूं जो ब्लॉक होने पर ब्लॉकयूआई प्रदर्शित करता है, और मैं अधिकतर सफल रहा हूं। यह अब बाहर निकलता है और दिखाता है "लोड हो रहा है ..." जब भी मैं दो कमांड बटनों में से किसी एक पर क्लिक करता हूं, एक शीर्षलेख पर क्लिक करके डेटाटेबल को सॉर्ट करें, या डेटाटेबल के माध्यम से पृष्ठ को सॉर्ट करें। आप इसके लिए कोड देख सकते हैं।प्राइमफेस ब्लॉकयूआई AJAX अद्यतन

समस्या यह है कि मैंने कमांडबटन (जो अवरुद्ध तत्व पर AJAX अद्यतन चलाता है) का उपयोग करने के बाद, बाद के कार्य ब्लॉकयूआई को ट्रिगर नहीं करते हैं (जब तक कि मैं पृष्ठ को रीफ्रेश नहीं करता)। उदाहरण के लिए: जब तक पृष्ठ लोड होता है

  • क्लिक करें blockUI प्रकट होता है - - जब तक तालिका छँटाई
  • क्लिक करें datatable पृष्ठ नेविगेशन बटनों में से एक समाप्त हो गया है blockUI प्रकट होता है

    • लोड पेज
    • एक datatable हेडर पर क्लिक करें कमांडबटन में से एक - ब्लॉकयूआई तब तक प्रकट होता है जब तक बटन की कार्रवाई नहीं होती है लिस्टनर
    • एक डेटाटेबल हेडर - टेबल प्रकार पर क्लिक करें, लेकिन ब्लॉकयूआई दिखाई नहीं देता है। पृष्ठ लोड है, लेकिन blockUI प्रकट नहीं होता है
    • क्लिक करें commandButtons में से एक - - ActionListener रन और तालिका अपडेट, लेकिन blockUI
    • पृष्ठ पुनः लोड करें प्रकट नहीं होता है -
    • datatable पृष्ठ नेविगेशन बटनों में से एक पर क्लिक करें सब कुछ commandButtons 'अद्यतन बदलने ठीक से फिर से

    काम करता है = "false" "ajax = करने के लिए विशेषता" छंटाई/पेजिंग हमेशा blockUI प्रदर्शित करने के लिए कारण बनता है, लेकिन commandButtons blockUI प्रदर्शित नहीं करने के।

    कोई विचार?

    <div class="buttonDiv"> 
        <p:commandButton ... update="resultsPanel" id="submitButton" ... /> 
        ... 
        <p:commandButton ... update="resultsPanel" id="resetScenarioButton" ... /> 
    </div> 
    <p:panel header="Results Grid" id="resultsPanel"> 
        ... 
        <p:dataTable ... id="VAResults" ... > 
         ... 
        </p:dataTable> 
        .... 
    </p:panel> 
    <p:blockUI block="resultsPanel" trigger="submitButton, resetScenarioButton, VAResults"> 
        Loading... 
    </p:blockUI> 
    
  • +0

    मैं थोड़े के रूप में अपने अपने प्रोजेक्ट में, लेकिन मैं बटन क्लिक करने के बाद पूरे विधि को अपडेट ... मैं पता नहीं एक समान परिदृश्य है thats क्या आप हालांकि – PermGenError

    उत्तर

    17

    trigger विशेषता निर्दिष्ट तत्वों पर jQuery श्रोताओं बांधता है। हालांकि यदि आप तत्व को अद्यतन करते हैं तो बाध्यकारी खो जाता है। मुझे नहीं पता कि यह काम करता है, लेकिन आप को resultsPanel के अंदर ले जाने का प्रयास कर सकते हैं। मुझे संदेह है कि जब आप पैनल को अपडेट करते हैं तो ब्लॉकयूआई भी अपडेट हो जाता है और इस प्रकार श्रोता को डेटा तालिका में दोबारा बाध्य करता है।

    <p:panel header="Results Grid" id="resultsPanel"> 
        ... 
        <p:dataTable ... id="VAResults" ... > 
         ... 
        </p:dataTable> 
        .... 
        <p:blockUI block="resultsPanel" trigger="submitButton, resetScenarioButton, VAResults"> 
        Loading... 
    </p:blockUI> 
    </p:panel> 
    
    +2

    क्या करना चाहते हैं अगर मैं एक ही समस्या थी लेकिन आपके उत्तर ने इसे हल किया .. मैंने फॉर्म के बाहर 'ब्लॉकुई' रखा था और यही कारण है कि मुझे अच्छी तरह से समस्या मिली है धन्यवाद आदमी (वाई) –

    0

    मैं एक ही समस्या और simillar परिदृश्य की तरह लिया है:

    <p:dataTable> 
        .... 
        <p:ajax event="rowSelect" update="buttons" global="false" onstart="blockMessageButtons.show();" oncomplete="blockMessageButtons.hide();"/> 
    </p:dataTable> 
    
    <p:outputPanel layout="block" id="buttons"> 
        <!-- content to be blocked --> 
    </p:outputPanel> 
    
    <p:blockUI block="buttons" widgetVar="blockMessageButtons"/> 
    

    समस्या यह है कि पैनल बटन दोनों ajax के द्वारा अद्यतन किया गया था, और blockUI द्वारा अवरुद्ध। मैं दो में विभाजित किया था:

    <p:dataTable> 
        .... 
        <p:ajax event="rowSelect" update="buttons-content" global="false" onstart="blockMessageButtons.show();" oncomplete="blockMessageButtons.hide();"/> 
    </p:dataTable> 
    
    <p:outputPanel layout="block" id="buttons-container"> 
        <p:outputPanel layout="block" id="buttons-content"> 
         <!-- content to be blocked --> 
        </p:outputPanel> 
    </p:outputPanel> 
    
    <p:blockUI block="buttons-container" widgetVar="blockMessageButtons"/> 
    
    +0

    मुझे नहीं पता कि ब्लॉकयूआई क्या ट्रिगर करता है? – Danijel

    +0

    यदि मैं सही याद करता हूं, तो मैं कोड से प्रोग्रामिक रूप से ब्लॉकयूआई को ट्रिगर कर रहा हूं। – Kangur

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