primefaces - p: कैलेंडर मान तारीख के साथ अद्यतन नहीं है




calendar (3)

मुझे एपी: कैलेंडर घटक एपी मिल गया है: संवाद एक। जब संवाद दिखाया जाता है कि यह वापस की बीन में संपत्ति से इसकी कीमत लेता है, लेकिन जब एक नई तारीख चुने जाती है, तो चयनकर्ता श्रोता को पहुंचे पुराने मान लाता है और नयी चुनी तारीख नहीं। अगले कोड में क्या गलत है?

   <p:dialog id="eventDialog" widgetVar="eventDialog" header="#{textos.confirmarFechaHora}" showEffect="clip" 
         hideEffect="clip" modal="true"
         appendToBody="true"> <!-- A false, no entran los eventos tras modificar la fecha/hora del calendario --> 
  <h:panelGrid id="eventDetails" columns="2">  
     <h:outputLabel for="calHora" value="#{textos.horaComienzo}" />  
     <p:calendar id="calHora" locale="es" pattern="dd/MM/yyyy HH:mm" 
                 value="#{schedulePFController.fechaComienzo}" mode="inline"
                 required="true"
                 accesskey="true" valueChangeListener="#{schedulePFController.cambiaHoraComienzoVCL}">
        <p:ajax event="dateSelect" listener="#{schedulePFController.cambiaHoraComienzo}"/>
     </p:calendar>
     <p:commandButton value="#{textos.cancelar}" oncomplete="eventDialog.hide();"/>  
     <p:commandButton value="#{textos.mostrarCitas}" 
                      action="#{schedulePFController.verEntradaCalendario}" 
                      rendered="#{schedulePFController.clickedOnCita}"/>
     <p:commandButton value="#{textos.addCita}" 
                      action="#{schedulePFController.addCita}" 
                      rendered="#{!schedulePFController.clickedOnCita}"/>
  </h:panelGrid>

public void cambiaHoraComienzo(SelectEvent ev) {
  Date date = (Date)ev.getObject();
  fechaComienzo = date;
  horaComienzo = new DateCita(date);
  logger.debug("Cambiando fechaComienzo "+horaComienzo.toString()+" +++++++++++++++++++++++++++++++++++++++++");}

आप यह गलत तरीके से कर रहे हैं, जटिल करने के लिए

यहाँ एक नज़र डालें:

        <p:calendar value="#{ivkDaten.beginn}" locale="de" lang="de"
            pattern="dd.MM.yyyy" label="#{messages['services.ivk.beginn']}:" 
            width="80" id="ivkbeginn" effect="fadeIn" readonlyInput="true" disabled="true"
            showOn="button" mindate="#{services.minDate}" maxdate="#{services.maxDate}">

            <p:ajax event="dateSelect" listener="#{ivkDaten.recalcDate()}"
                update="ablauf" />
        </p:calendar>

आपको "reclacDate()" लिए गेटर / सेटर सेट करने की आवश्यकता है और जब आप "reclacDate()" कॉल करते हैं तो आप "reclacDate()" प्रयोग कर सकते हैं और मुझे पूरा यकीन है कि आपके पास नई तारीख होगी।


मुझे पता नहीं है कि आप valueChangeListener="#{schedulePFController.cambiaHoraComienzoVCL}" p:calender में क्यों उपयोग कर रहे हैं p:calender जब आप पहले से ही अपने एजेक्स कॉल में एक सूची बनाने वाले हैं
बस अपने p:calender valueChangeListener="#{schedulePFController.cambiaHoraComienzoVCL}" को हटा दें p:calender और फिर check.listener listener="#{schedulePFController.cambiaHoraComienzo}" जो आप p:ajax में उपयोग कर रहे हैं p:ajax टैग पर्याप्त है


यह प्राइमफैसेस के पुराने संस्करणों के साथ एक समस्या है। इसे प्राइमफॉसेस 3.3 या 3.3.1 में तय किया गया है। किसी नए संस्करण में अपग्रेड करने का प्रयास करें