2009-07-10 8 views
6

किसी को उम्मीद है कि मैं एक छोटी सी बाधा के साथ मेरी मदद कर सकता हूं, मैं एक 4j लिंक/बटन के बाद रिचफेस घटकों के पुन: प्रस्तुत करने के संबंध में आया हूं । मेरी समस्या का एक सरलीकृत संस्करण इस प्रकार है:A4j लिंक के बाद रिचफ़ेस घटक को पुन: प्रस्तुत करने के लिए कैसे

मैं किसी पाठ मान जो गाया मेरे प्रबंधक वर्ग में कुछ मूल्य पर आधारित होते हैं प्रदर्शित 2 उत्पादन घटक:

<h:outputText id="on" value="ON" rendered="#{manager.isOn}" /> 

<h:outputText id="off" value="OFF" rendered="#{not manager.isOn}" /> 

मैं भी 2 a4j लिंक है कि कॉल कुछ कार्रवाई और उसके बाद फिर से प्रस्तुत करना ऊपर outputText घटकों:

<a4j:commandLink ajaxSingle="true" value="Set On" action="#{manager.setOn(true)}" reRender="on,off" /> 

<a4j:commandLink ajaxSingle="true" value="Set Off" action="#{manager.setOn(false)}" reRender="on,off" /> 

मैं तो होना ही है, जब मैं बटन 'पर सेट करें' पर क्लिक करें, 'ऑन' outputText घटक को सामने लाने होगा उम्मीद करेंगे क्या, और 'बंद outputText घटक दिखाएगा। हालांकि, ऐसा नहीं होता है।

क्या किसी के पास इसका जवाब है कि ऐसा क्यों है, और मैं A4j घटक कार्रवाई पूर्ण होने के बाद इन घटकों को फिर से प्रस्तुत करने के बारे में कैसे जाता हूं? एक s:div और में

उत्तर

11

लपेटें outputText घटकों को फिर से प्रस्तुत करना है कि इस प्रकार है:

<s:div id="myDiv"> 
    <h:outputText id="on" value="ON" rendered="#{manager.isOn}" /> 

    <h:outputText id="off" value="OFF" rendered="#{not manager.isOn}" /> 
</s:div> 

<a4j:commandLink ajaxSingle="true" value="Set On" 
    action="#{manager.setOn(true)}" reRender="myDiv" /> 

<a4j:commandLink ajaxSingle="true" value="Set Off" 
    action="#{manager.setOn(false)}" reRender="myDiv" /> 
0

मुझे लगता है कि आपके ज: outputText तत्वों पर और बंद का लोड समय में गाया नहीं कर रहे हैं पन्ना।

RichFaces इन घटकों बाद में rerender नहीं होगा, भले ही गाया का मूल्य सच को बदल दिया है।

1

आप माता-पिता को फिर से प्रस्तुत करते हैं। यह एक सीम टैग होना जरूरी नहीं है।

3

मैं जीन के साथ सहमत हैं, लेकिन सबसे अच्छा तरीका है मैं मिल सकता है

<a4j:outputpanel id="whatever_id" />

उदाहरण के लिए

के साथ सामग्री के चारों ओर, है

<a4j:outputpanel id="myDiv"> 
    <h:outputText id="on" value="ON" rendered="#{manager.isOn}" /> 
    <h:outputText id="off" value="OFF" rendered="#{not manager.isOn}" /> 
</a4j:outputpanel> 
संबंधित मुद्दे