2011-01-11 3 views
5

का उपयोग करके दोहराएं मेरे पृष्ठ में कई क्षेत्र शामिल हैं जो <ui:repeat> का उपयोग कर आइटमों की सूची में पुनरावृत्त करके बनाए जाते हैं। इस सरल उदाहरण कल्पना कीजिए:जेएसएफ 2.0: यूई में एक ही आइटम को पुन: प्रस्तुत/अद्यतन करना: AJAX

<h:form id="form">  
    <ui:repeat id="repeatContainer" var="item" value="#{testBean.items}" varStatus="status"> 
     <h:outputText value="#{item.title}: "/> 

     <!-- I want to re-render only a single one of these fields --> 
     <h:outputText id="valueContainer" value="#{item.value}"/><br/>   
    </ui:repeat> 
</h:form> 

अब, मैं फिर से प्रस्तुत करना चाहते हैं (केवल) एक विशिष्ट तत्व की valueContainer इस सूची AJAX का उपयोग कर के भीतर (जैसे कि, सूचकांक 1 के साथ तत्व)।

<!-- Works, but renders all items: --> 
<f:ajax render=":form"/> 

<!-- This is what I actually want to achieve (does not work, comp. not found): --> 
<f:ajax render=":form:repeatContainer:1:valueContainer"/> 

<!-- Does not work (component not found): --> 
<f:ajax render=":form:repeatContainer"/> 

<!-- Does not work (component not found): --> 
<f:ajax render=":form:repeatContainer:1"/> 

<!-- Does not work (component not found): --> 
<f:ajax render=":form:1"/> 

<!-- Does not work (component not found): --> 
<f:ajax render=":form:1:valueContainer"/> 

<!-- Does not work (no error message, but does nothing): --> 
<f:ajax render=":form:repeatContainer:valueContainer"/> 

मेरे आवश्यकताओं में शामिल हैं:: मैं पहले से ही किसी भी भाग्य के बिना इन संयोजनों के सभी की कोशिश की है

  • मैं एक पूर्ण पहचानकर्ता पथ के साथ फिर से प्रस्तुत करना के घटक की पहचान करने की जरूरत है, क्योंकि बटन अद्यतन को ट्रिगर करता है घटक पेड़ में पूरी तरह से अलग है। संपूर्ण पृष्ठ या प्रपत्र (@all/@form का प्रयोग करके)
  • पुन: प्रतिपादन मेरे लिए बेकार है, क्योंकि उस तरह का प्रश्न क्यों मैं JSF/AJAX बिल्कुल उपयोग कर रहा हूँ में डालता है ...
  • मैं की जरूरत है प्राइमफेसेस <p:dataGrid> कोशिकाओं (यानी एक विशिष्ट सेल के केवल एक विशिष्ट उप-घटक को अद्यतन करें) के साथ एक ही चीज़ प्राप्त करने के लिए, लेकिन मुझे लगता है कि यह एक ही समस्या को कम कर देता है।

मुझे लगता है कि इस पर एक आसान समाधान होना चाहिए जो मैं वर्तमान में देख रहा हूं ?!

उत्तर

0

ऐसा लगता है कि यह Mojarra 2.0.2 में दो अलग-अलग बग के कारण होता है। निम्नलिखित धागा कोई संबंधित समस्या पर चर्चा करता है: How to refer to dataTable parent within the dataTable?

मेरे मामले में, मैं PrimeFaces <h:dataTable> के बजाय <p:dataGrid> उपयोग कर रहा हूँ, लेकिन यह एक ही लक्षण से ग्रस्त लगता है। संदर्भ बस असफल हो जाते हैं। मुझे लगता है कि यह UIComponent#findComponent() में एक बग से संबंधित है या जेएसएफ कार्यान्वयन के अंतर्निहित तरीकों से संबंधित है।

ऐसा लगता है कि इस समय इस समस्या का कोई समाधान नहीं है ... जेएसएफ कार्यान्वयन के लिए इंतजार करने के अलावा ... अगर किसी और के पास और सुझाव हैं, तो उन्हें जोड़ने में संकोच न करें।

0

समस्या का सामना कर रहा एक प्रमुख में प्रपत्र रखकर हल किया जा सकता है पी: outputPanel और सच

+0

क्षमा करने के लिए स्वत: अपडेट निर्धारित करते हैं, लेकिन मैं नहीं दिख रहा है कि कैसे इस सवाल का जवाब देता है। फॉर्म को पी में रखना: outputPanel व्यक्तिगत पंक्तियों को अपडेट करने में मदद नहीं करेगा। – sleske

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