我在p:對話框中有一個p:calendar組件。當顯示對話框時,它從後端bean的屬性中獲取它的值,但是當選擇新的日期時,到達偵聽器的SelectEvent會帶來舊值而不是新的選定日期。下一個代碼有什麼問題?p:日曆值未用日期更新選擇
<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()+" +++++++++++++++++++++++++++++++++++++++++");}
你初始化'SchedulePFController'屬性'fechaComienzo'任何默認值? – Freak 2013-05-08 10:12:47
哦,我只是看到'valueChangeListener =「#{schedulePFController.cambiaHoraComienzoVCL}」'在這裏你調用另一種方法,你正在'cambiaHoraComienzo'方法看價值嗎?你在做什麼呀? – Freak 2013-05-08 10:14:51
從'p:calender'中刪除'valueChangeListener =「#{schedulePFController.cambiaHoraComienzoVCL}'',然後在'p:ajax'標籤中使用的check.listener listener =」#{schedulePFController.cambiaHoraComienzo}「是足夠 – Freak 2013-05-08 10:16:36