2014-07-15 10 views
6

मैं प्राइमफेस 5 और वाइल्डफ्लाई सर्वर का उपयोग कर वेबसाइट बना रहा हूं। मुझे घटक का उपयोग करने में समस्या है। मेरे पास प्रत्येक पंक्ति में निम्नानुसार है। बटन ने actionlistener प्रॉपर्टी को परिभाषित किया है जो बीन विधि का समर्थन करता है और उसके बाद इसे संवाद प्रदर्शित करना चाहिए। यहां कुछ कोड दिया गया है:प्राइमफेस 5.0 संवाद विजेटवार

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
       xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
       xmlns:h="http://xmlns.jcp.org/jsf/html" 
       xmlns:p="http://primefaces.org/ui" 
       xmlns:pt="http://java.sun.com/jsf/composite/components" 
       template="../templates/mainTemplate.xhtml"> 

    <ui:define name="title"></ui:define> 

    <ui:define name="main-content"> 

     <h:form> 
      <p:dataTable id="dataTable" value="#{bean.list}" var="item" 
         styleClass="hide-column-header small-text"> 

       <!-- some columns --> 

       <p:column style="width: 18%; text-align: center;"> 
        <p:commandButton value="Open dialog" actionListener="#{bean.buttonListener(item)}" oncomplete="PF('dlg').show();"/> 
       </p:column> 

      </p:dataTable> 
     </h:form> 

     <p:dialog id="dialog" widgetVar="dlg" resizable="false" modal="true" 
        header="Dialog"> 
      <h:form> <!-- some inputs --> </h:form> 
     </p:dialog> 
    </ui:define> 

</ui:composition> 

लेकिन यह काम नहीं कर रहा है। मैं क्रोम कंसोल की जांच करता हूं और var 'dlg' के लिए "var के लिए विजेट" विजेट उपलब्ध नहीं है! " जब बटन पर क्लिक करें तो मैंने 'Primefaces.widgets' की जांच की और वास्तव में मेरे संवाद के लिए कोई विजेट नहीं है। क्या कोई मेरी यह मदद कर सकता है?

// संपादित करें
ठीक है मैं अंत में इसे काम करने के लिए मिलता हूं। परीक्षण और त्रुटि से मुझे यह टेम्पलेट मेरे टेम्पलेट में मिला:

<script type="text/javascript" src="//code.jquery.com/jquery-2.1.1.min.js"></script> 

इसे हटाने के बाद सबकुछ योजनाबद्ध रूप से काम करना शुरू कर दिया। मुझे लगता है कि ऐसा इसलिए है क्योंकि प्राइमफेस jquery के अपने संस्करण के साथ आते हैं?

+0

तुम कोशिश कर सकते पीएफ (': dlg')? – adam0404

+0

आपका मामला बहुत ही बुनियादी है, इसे काम करना चाहिए। जांचें कि क्या आपके पास पेज लोड पर कोई जावास्क्रिप्ट त्रुटियां हैं या नहीं। –

+0

क्या आप भी अपना 'बीन' कोड पोस्ट कर सकते हैं? – alex

उत्तर

5

प्राइमफ़ेस में पहले से ही एक jQuery है, इसलिए प्राइमफ़ेस के साथ काम करते समय एक और jQuery lib का उपयोग न करने की बहुत अनुशंसा की जाती है।

आपको बाहरी jQuery lib को हटाने का प्रयास करें और कमांड पीएफ ('डीएलजी') द्वारा संवाद को कॉल करें।();

आपको कम से माइग्रेशन मार्गदर्शिका में इस और अन्य परिवर्तनों की जांच कर सकते हैं: https://code.google.com/p/primefaces/wiki/MigrationGuide

+0

मेरे लिए काम किया! धन्यवाद। – Dandelion

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