प्रेरणा: मैं पृष्ठ के आकार को कम करने के लिए कम करना चाहता हूं, इसलिए मैंने सोचा कि मोडलपैनल्स पर आलसी प्रतिपादन मदद करेगा। विचार मॉडलल को प्रस्तुत करना है जब उपयोगकर्ता इसे प्रदर्शित करने वाले लिंक पर क्लिक करता है।प्रदर्शित होने पर modalPanel आलसी प्रतिपादन
मैं इसे प्रदर्शित करने के लिए लिंक पर क्लिक करके rich:modalPanel
पर आलसी प्रस्तुत करना चाहता हूं।
modalPanel
संहिता, एक a4j:outputPanel
<a4j:outputPanel id="a4jPanel">
<rich:modalPanel id="panel" rendered="#{bean.renderPanel}">
<!-- here modalPanel things -->
</rich:modalPanel>
</a4j:outputPanel>
समर्थन सेम संहिता (सत्र दायरा) के अंदर लिपटे:
public boolean isRenderPanel() {
return renderPanel; //default value is false;
}
public void setRenderPanel(boolean value){
this.renderPanel=value;
}
public setRenderFalse(){
this.setRenderPanel(false);
}
संहिता इस एक तरह से प्राप्त करने के लिए मैंने पाया पृष्ठ जहां इसे बुलाया जाता है:
<a4j:form>
<a4j:jsFunction name="setRenderFalse" action="#{user.setRenderFalse}"/>
<a4j:commandLink value="render and show" oncomplete="Richfaces.showModalPanel('panel');setRenderFalse();" reRender="a4jPanel">
<f:setPropertyActionListener target="#{user.renderPanel}" value="true" />
</a4j:commandLink>
</a4j:form>
समस्याएं:
modalPanel (मैं कभी नहीं समझा क्यों) एक
a4j:outputPanel
अंदर लिपटे होने के लिए क्योंकि reRendering सीधे modalPanel काम नहीं करता है की जरूरत है।इसे प्रस्तुत करने के बाद, रेंडर मान को झूठी (सेट बीन सत्र स्कॉप्ड) सेट करने के लिए एक अतिरिक्त अनुरोध की आवश्यकता है। अन्यथा यदि हम पृष्ठ को फिर से लोड करते हैं तो कोई आलसी प्रतिपादन नहीं होगा क्योंकि मान
true
पर सेट किया गया था।समर्थन सेम एक संपत्ति को संभालने के लिए प्रत्येक modalPanel के लिए राज्य रखने के लिए है, हालांकि इस संपत्ति
true
पर सेट किया जाता है जब भी लिंक पर क्लिक किया औरfalse
पर सेट होता अनुरोध समाप्त हो गया है है। मैंने जेएस चर के साथrendered
स्थिति रखने की कोशिश की है, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है (पृष्ठ को लोड होने के बाद वे पढ़े जाते हैं और कभी नहीं)।
ऐसा करने के लिए कोई और शानदार तरीका?
एक साफ समाधान की तरह लगता है। मैं इसे आजमाऊंगा। यदि यह काम करता है, तो बक्षीस तुम्हारा है :) – pakore
यह ठीक काम करता है! धन्यवाद। – pakore
बढ़िया, खुशी हुई इससे मदद मिली। –