Primefaces p: kalendarz z p: wartość ajax nie jest aktualizowana (jedno opóźnienie)
Chcę zadzwonić do fasoli po wybraniu daty w ap:calendar
. W mojej konfiguracji mam@Named @ViewScoped
Fasola, klasaObWithDate
jest@Entity
z polem datyważny od.
<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>
Dobrą rzeczą jest to, że metoda fasoliupdate(ObWithDate myO)
jest wywoływany z właściwym obiektem za każdym razem, gdy wybieram datę. Złą rzeczą jest tomyO.validFrom
nie ma poprawnej wartości. Zawszejeden krok do tyłu:
Ten problem doprowadza mnie do szaleństwa, znalazłem kilka problemów z niepoprawnie zaktualizowanymi wartościami, a także trochę op:calendar
. Większość z nich sugeruje użycie atrybutuselectListener="#{calendarBean.handleDateSelect}"
zhandleDateSelect(DateSelectEvent event)
metoda. Ale chcę wywołać moją metodę, ponieważ chcę przekazać bieżącą instancję zmiennej.
p:dataTable
i tylko używającp:calendar
problem jest nadal taki sam.Theźle wartość wyjścia debugowania można zaobserwować dla obiektu methodupdate(ObWithDate myO)
jak również dla odpowiedniego wpisu wmyBean.listObWithDates
.<p:ajax immediate="true" .../>
nie rozwiązuje tego problemu.Aktualizacja MattHandy bardzo mi pomógł, wynikające z tego pytanieJak uzyskać odpowiedni element listy w wywołaniu ajax wewnątrz metody bean? jest sformułowany w następstwieJSF p: kalendarz w p: dataTable: Jak uzyskać wiersz zdarzenia p: ajax dateSelect.