需要保持打开Primefaces的对话框

时间:2017-04-04 16:53:48

标签: jsf primefaces

我有一个问题,因为我想保持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>

1 个答案:

答案 0 :(得分:2)

如果您要执行的操作是更新对话框中的表单字段,则应使用update="nuevoCombustible"

假设您的对话框是通过使用javascript更改CSS属性来呈现的,那么在重新渲染组件时,您实际上会丢失这些值。