java - Primefaces 在操作后刷新对话框上的日历
问题描述
我在一个对话框中有一个输入日历(现在是,但同样发生)。问题是当我执行操作时,我调用 bean 来保存此日历中引用的对象,然后,当我为此输入创建一个新对象时,对话框不会用这个新的“空值”刷新。他们显然保持旧对象页面上的状态,但在后面,在 bean 上,对象是新对象。
我不知道我做错了什么,如果有人可以帮助我,我会很高兴。
这是我输入的对话框的一部分
<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>
这是我调用保存在日历上引用的对象并创建一个新对象的操作的按钮(在调用方法的末尾实体 = 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)}"
/>
解决方案
@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>
推荐阅读
- amazon-web-services - Docker-compose 开始失败,没有对代码库进行任何更改
- javascript - Flex 不会扩展 div 的内容以适应 div 的全宽
- python - 在python中的多个列上循环和融化?
- asp.net-core - 试图强制 ASP.NET 核心 MVC 使用 HTTPS
- mongodb - 将 ISO 格式日期时间转换为 mongoDB 3.6 中的日期
- tensorflow - tensorflow 与 anaconda 和 python 版本冲突
- user-interface - 光子碰撞问题
- d3.js - 使用 scala.js 创建条形图
- python-3.x - tkinter 网格识别不起作用,无法识别每个像素
- android - gradle build 未检测到 build.gradle 中的 android ndkVersion