Primefaces refre sh календарь в диалоге после действия - PullRequest
0 голосов
/ 10 марта 2020

У меня есть один входной календарь (сейчас есть, но то же самое происходит с) внутри одного диалога. Проблема заключается в том, что когда я выполняю действие, где я вызываю компонент для сохранения объекта, на который есть ссылка в этом календаре, а затем, когда я создаю новый объект для этого ввода, диалоговое окно не обновляется с этим новым «нулевым значением». По-видимому, они сохраняют состояние на странице старого объекта, но сзади, на бобе, объект является новым.

Я не знаю, что я делаю не так, и буду признателен, если кто-то сможет мне помочь.

Это часть моего диалогового окна, в которую я помещаю ввод

                    <div>
                        <p:outputLabel id="calendarLabel"
                                       value="beginDate"
                                       for="dateInput"/>
                        <ii:calendar id="dateInput"
                                     pattern="yyyy-mm-dd"
                                     value="#{bean.entity.beginDate}"
                                     immediate="true"
                                     style="text-align: right !important;">
                            <p:ajax event="change" process="@this" update="@this"/>
                        </ii:calendar>
                        <p:message id="beginDateMessage"
                                   for="dateInput"/>
                    </div>

Вот кнопка, где я вызываю действие, которое сохраняет объект, указанный в календаре, и создает новый объект (entity = new Entity () в конце вызванного метода)

               <p:commandButton id="CmdYes"
                                 styleClass="ui-confirmdialog-yes"
                                 icon="fa fa-check"
                                 value="Confirm"
                                 process="@form @form:dialog"
                                 update="@form @form:dialog"
                                 immediate="true"
                                 action="#{bean.persistEntity()}"
                                 onstart="PF('pageBlocker').show();"
                                 onsuccess="PF('dialog').hide();PF('pageBlocker').hide();">
                </p:commandButton>

Я уже все перепробовал, и самым близким решением было создать кнопку, используя onclick = "calendarWidget.setDate (null)". С этим я могу нажать кнопку и очистить ввод календаря, я могу поместить это в JS и вызвать щелчок после действия. Но это кажется мне плохим решением.

Может ли кто-нибудь помочь мне понять, что я делаю неправильно?

ОБНОВЛЕНИЕ

Это действие, вызывающее диалоговое окно:

                <p:menuitem id="actionSuspend"
                            value="Suspend"
                            process="@form" update="@form" 
                            immediate="true"
                            onstart="PF('pageBlocker').show()"

                            oncomplete="PF('dialog').show();PF('pageBlocker').hide()"
                            actionListener="#{bean.doAction('action', item)}"
                            rendered="#{bean.canDoAction('action', item)}"
                />

1 Ответ

0 голосов
/ 13 марта 2020

@ MatteoZanini действительно решил проблему:

У меня работает resetInput, я вызываю его кнопкой, которая открывает диалоговое окно, а затем все сбрасывается.

               <p:menuitem id="actionSuspend"
                            value="Suspend"
                            process="@form" update="@form" 
                            immediate="true"
                            onstart="PF('pageBlocker').show()"
                            oncomplete="PF('dialog').show();PF('pageBlocker').hide()"
                            actionListener="#{bean.doAction('action', item)}"
                            rendered="#{bean.canDoAction('action', item)}">
               <p:resetInput target="@form:dialog"/>
                        </p:menuitem>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...