Primefaces p: calendario con p: valor ajax no actualizado (retraso de un paso)
Quiero llamar a un bean después de seleccionar una fecha en unap:calendar
. En mi configuración tengo un@Named @ViewScoped
Frijol, la claseObWithDate
es un@Entity
con un campo de fechaválida desde.
<code><h:form id="fUser"> <p:dataTable id="dt" var="cum" value="#{myBean.listObWithDates}"> <p:column> <p:calendar id="cValidFrom" value="#{cum.validFrom}"> <p:ajax event="dateSelect" listener="#{myBean.update(cum)}" update=":fUser:dt"/> </p:calendar> </p:column> </p:dataTable> </h:form> </code>
Lo bueno es que el método del frijol.update(ObWithDate myO)
Se llama con el objeto correcto cada vez que selecciono una fecha. Lo malo es quemyO.validFrom
No tiene el valor correcto. Siempre esun paso atras:
Este problema me vuelve loco, he encontrado varios problemas con valores no actualizados correctamente y también algunos sobrep:calendar
. La mayoría de ellos sugieren usar el atributo.selectListener="#{calendarBean.handleDateSelect}"
con unhandleDateSelect(DateSelectEvent event)
método. Pero quiero llamar a mi método ya que quiero pasar la instancia actual de la variable.
p:dataTable
y solo usandop:calendar
El problema sigue siendo el mismo.losincorrecto El valor de la salida de depuración se puede observar para el método-Objeto.update(ObWithDate myO)
así como para la entrada correspondiente enmyBean.listObWithDates
.<p:ajax immediate="true" .../>
No resuelve este problema.Actualizar MattHandy me ayudó mucho, la pregunta resultante.¿Cómo obtener el elemento de la lista correspondiente en la llamada ajax dentro del método de beans? Se formula en el seguimiento.JSF p: calendar in p: dataTable: cómo obtener la fila de p: ajax dateSelect event.