2012-10-19 10 views
5

यदि मैं नीचे जैसा उपयोग करता हूं, तो मुझे कोई त्रुटि नहीं, कोई आउटपुट नहीं मिलता है। p:panelGridui:repeat के साथ क्यों काम नहीं करता है?पी क्यों करता है: पैनलग्रिड ui के साथ काम नहीं करता है: दोहराना?

नोट: मैं c:forEach का उपयोग नहीं करना चाहता क्योंकि मुझे पहले से ही बहुत सारे जेएसएफ मुद्दे का सामना करना पड़ रहा है।

<p:panelGrid> 
    <ui:repeat value="#{MyBean.dataList}" var="data"> 
     <p:row> 
      <p:column> 
       <h:outputText value="#{data.name}"/> 
      </p:column> 
      <p:column> 
       <h:outputText value="#{data.description}"/> 
      </p:column> 
     </p:row> 
    </ui:repeat> 
</p:panelGrid> 

MyBean.java

public List<Data> getDataList(){ 
    List<Data> result = new ArrayList<Data>(); 
    result.add(new Data("Name 1", "Description 1")); 
    result.add(new Data("Name 2", "Description 2")); 
    result.add(new Data("Name 3", "Description 3")); 
    result.add(new Data("Name 4", "Description 4")); 
    return result; 
} 

primefaces साथ अपेक्षित उत्पादन

enter image description here

+0

देखें पी का उपयोग क्यों नहीं: बजाय DataTable? पी: पैनल ग्रिड स्थिर टेबल के लिए है। – mrembisz

+0

@mrembisz मैं अपने उपयोगकर्ता इंटरफ़ेस के कारण इसका उपयोग नहीं कर सकता। यदि आप मेरा यूजर इंटरफेस चाहते हैं, तो मैं – CycDemo

+1

अपलोड करूंगा आप टैगहैंडलर और यूआई घटकों के बीच अंतर को समझ नहीं सकते हैं। 'C: forEach' का उपयोग नहीं किया जाना चाहिए, लेकिन इसके बजाय * समझा जाना चाहिए *। यह भी देखें http://stackoverflow.com/questions/3342984/jstl-in-jsf2-facelets-makes-sense – BalusC

उत्तर

6

ui:repeat काम नहीं करेगा क्योंकि यह नहीं है लगता है इस

<p:dataTable id="availableCars" var="car" value="#{tableBean.carsSmall}"> 
    <p:column style="width:20px"> 
     <h:outputText id="dragIcon" 
      styleClass="ui-icon ui-icon-arrow-4" /> 
     <p:draggable for="dragIcon" revert="true" /> 
    </p:column> 

    <p:column headerText="Model"> 
     <h:outputText value="#{car.model}" /> 
    </p:column> 

    <p:column headerText="Year"> 
     <h:outputText value="#{car.year}" /> 
    </p:column> 

    <p:column headerText="Manufacturer"> 
     <h:outputText value="#{car.manufacturer}" /> 
    </p:column> 

    <p:column headerText="Color"> 
     <h:outputText value="#{car.color}" /> 
    </p:column> 
</p:dataTable> 

Here is the link के लिए primefaces datatable उपयोग करने के लिए सुझाव है वास्तव में घटक पेड़ में घटक जोड़ें।

ui:repeat केवल रेंडर चरण के दौरान काम करता है, और विभिन्न राज्यों के साथ अपने बच्चे के घटकों को कई बार फिर से प्रस्तुत करता है।

कुछ घटक, जैसे कि panelgrid, लेकिन datatable, अपेक्षाकृत सही काम करने के लिए घटक पेड़ में कुछ बच्चे होने की उम्मीद है। चूंकि ui:repeat इन्हें जोड़ता नहीं है, इसलिए यह दृष्टिकोण काम नहीं करता है।

मुझे खेद है, लेकिन इसके लिए सामान्य समाधान c:foreach का उपयोग करना है, जो बच्चों को पेड़ में जोड़ता है।

http://www.ninthavenue.com.au/blog/c:foreach-vs-ui:repeat-in-facelets

0

p:panelGrid में columns को परिभाषित करते हुए यह प्रयास करें तो आप <p:panelGrid columns=""> परिभाषित करने के लिए होना चाहिए के रूप में आप स्थिर संख्या कॉलम ।यह काम करेगा।
लेकिन मैं तुम्हें जहां यह कोड ढूंढने और primnefaces showcase.I यह अपने requirment पूरा करेगा

+0

का संदर्भ दूंगा धन्यवाद, यह मेरे अपेक्षित आउटपुट को पूरा नहीं कर सकता है। प्रश्न में मेरी तस्वीर का संदर्भ लें। – CycDemo

+0

आपने प्राइमफेस का उपयोग क्यों नहीं किया? मैंने अपना जवाब अपडेट किया है कृपया जांचें .. – khan

+0

कृपया, मैं अपने अपेक्षित आउटपुट के लिए अपनी नई छवि अपलोड करता हूं। मैं डेटाटेबल का उपयोग कैसे कर सकता हूं। – CycDemo

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