我知道很多关于这个话题,但是所有的解决方案都指出要创建一个重置按钮......是不是只清除字段并重新填充它们?
这是我的代码
<p:commandButton id="basic" value="#{c.machine}" action="#{updateEntry.setMachine(c.machine)}" oncomplete="dlg1.show();" styleClass="ui-Machinebutton"/>
这会在'updateEntry'中设置值'machine',一旦完成,就会启动对话框'dlg1'
对话框
<p:dialog id="Update_Entry" header="Update Entry" widgetVar="dlg1" modal="true" height="250" dynamic="True" resizable="False">
<h:form prependId="false" id="Update_Entry_Form" method="post" autocomplete="off">
<h:panelGrid id="update_grid" columns="2" style="margin-bottom:10px">
<f:facet name="header">
<p:messages />
</f:facet>
<h:outputLabel for="machine" value="Machine *" />
<p:inputText id="machine" value="#{updateEntry.machine}" required="true" requiredMessage="Machine is required">
<f:validateLength minimum="5" maximum="5"/>
</p:inputText>
表单第一次加载精细值,但即使更新updateEntry.machine,它也始终加载先前的值。我该如何自动清除它?我正在使用PrimeFaces
答案 0 :(得分:1)
您在打开之前忘记了ajax更新对话框的内容。这就是为什么它总是显示初始内容,就像第一次呈现页面或最后一次关闭对话框时那样。
相应地这样做:
<p:commandButton ... update=":Update_Entry">