5

我有一个comandButtonwhich 调用confirmDialog必须消除一个用户,但它从不调用它的 actionListener 中的方法。

这是代码:

<p:dialog id="dialogEditar" widgetVar="dialogEditar" header="#{bundle_usuarios.usuarios_titulo_edicion}" resizable="false">
    <p:panelGrid id="panelEditar"
        <p:row>
            <p:column>
                <p:commandButton id="btModificar" type="submit" actionListener="#{usuariosMB.modificarUsuario()}"
                             value="#{bundle_general.general_modificar}" update="formEditar" rendered="#{usuariosMB.permisoCtMenu}"/>
            </p:column>
            <p:column colspan="7">
                <p:commandButton id="btEliminar" type="button" onclick="confirmation.show()"
                              value="#{bundle_general.general_eliminar}"/>
            </p:column>
        </p:row>
    </p:panelGrid>
    <p:confirmDialog appendToBody="true" id="confirmDialog" message="#{bundle_usuarios.usuarios_confirma}"
                     header="#{bundle_usuarios.usuarios_titulo_confirma_eliminar}" severity="alert" widgetVar="confirmation">
        <p:commandButton id="confirm" type="submit" value="#{bundle_usuarios.usuarios_aceptar_eliminar}"
                         update="dialogEditar, formEditar" oncomplete="confirmation.hide()"
                         actionListener="#{usuariosMB.eliminarUsuario()}" rendered="#{usuariosMB.permisoCtMenu}" /> 
        <p:commandButton id="decline" value="#{bundle_usuarios.general_cancelar}" onclick="confirmation.hide()" type="button" />
    </p:confirmDialog>
</p:dialog>

如果我输入相同的代码,但没有确认对话框,它会运行并删除用户而不会出现问题。

成功运行的代码如下:

<p:dialog id="dialogEditar" widgetVar="dialogEditar" header="#{bundle_usuarios.usuarios_titulo_edicion}" resizable="false">
    <p:panelGrid id="panelEditar"
        <p:row>
            <p:column>
                <p:commandButton id="btModificar" type="submit" actionListener="#{usuariosMB.modificarUsuario()}"
                             value="#{bundle_general.general_modificar}" update="formEditar" rendered="#{usuariosMB.permisoCtMenu}"/>
            </p:column>
            <p:column colspan="7">
                 <p:commandButton id="btEliminar" type="submit" actionListener="#{usuariosMB.eliminarUsuario()}" value="#{bundle_general.general_eliminar}" update="dialogEditar, formEditar" rendered="#{usuariosMB.permisoCtMenu}"/>
            </p:column>
        </p:row>
    </p:panelGrid>
</p:dialog>

另一件事,当我单击带有 id="confirm" 的 commandButon 时,confirmDialog 永远不会消失,并且它一直被阻止在窗口中。

如果您需要更多详细信息,请告诉我需要。请问,有什么建议吗?谢谢!

4

2 回答 2

4

如果您的对话框放置在 ah:form 中,那么从该表单执行并将 ah:form 放置在对话框中是一个很好的练习。您仍然可以通过 widgetVar 访问

<h:form>
....
</h:form>

<p:dialog>

<h:form>
...
<p:commandButton />
<h:form>

</p:dialog>
于 2012-11-30T10:07:12.173 回答
3

将命令按钮更改为普通按钮

<p:commandButton id="confirm" type="submit" value="Your Command Text"/>

然后在点击事件上调用对话框

<p:commandButton id="confirm" type="button" value="Your Command Text" onclick="dialog.show()"/>

dialogwidget var你的对话。

然后,您可以从确认对话框中的命令按钮执行删除操作。

看起来你已经做了这个改变。您仍然遇到同样的问题吗?

于 2012-11-30T10:02:27.073 回答