我有一个问题,因为我想保持Primefaces的对话框打开,但每次按下注册按钮,它都会关闭。
当数据加载良好时,这不是一个大问题。因为它们被记录在数据库中并且操作结束。
我的目的是让Dialog保持在屏幕上,直到我决定用另一个按钮关闭它。这是因为如果验证产生错误,它应该保留,直到它们纠正数据,或者决定不注册。
附加对话框代码:
<h:form id="frmAltaCombustible">
<p:dialog header="Nuevo Combustible" widgetVar="dialogoNuevoCombustible" resizable="false" width="900" showEffect="explode" hideEffect="explode" >
<p:panelGrid id="nuevoCombustible" columns="3">
<p:outputLabel value="Identificador de Combustible:" for="txtIdentificador"/>
<p:inputText id="txtIdentificador" label="Identificador" value="#{mbCombustibles.combustible.idcombustible}">
<f:validator validatorId="validadorVacio"/>
</p:inputText>
<p:message for="txtIdentificador"/>
<p:outputLabel value="Nombre de combustible:" for="txtDescripcion"/>
<p:inputText id="txtDescripcion" label="Nombre" value="#{mbCombustibles.combustible.descripcion}">
<f:validator validatorId="validadorVacio"/>
</p:inputText>
<p:message for="txtDescripcion"/>
<p:commandButton value="Registrar Combustible" actionListener="#{mbCombustibles.registrar()}" update=":frmAltaCombustible,:frmListaCombustibles"/>
</p:panelGrid>
</p:dialog>
</h:form>
答案 0 :(得分:2)
如果您要执行的操作是更新对话框中的表单字段,则应使用update="nuevoCombustible"
。
假设您的对话框是通过使用javascript更改CSS属性来呈现的,那么在重新渲染组件时,您实际上会丢失这些值。