p:对话框不会触发ajax关闭事件

时间:2013-07-24 23:28:14

标签: primefaces

使用关闭按钮关闭对话框时,不会触发我的侦听器方法。我不明白为什么会这样......

对话框所在的XHTML页面

<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition  xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:sec="http://www.springframework.org/security/tags"
      template="/templates/template.xhtml">

    <ui:define name="content">


    <f:view>

    <p:outputPanel id="opWindowsDlgViewUser">
    <p:dialog id="dlgViewUser" widgetVar="wvDlgViewUser"
        header="#{personaController.titleDlgViewUser}"
        dynamic="true"
        modal="true" closable="true" resizable="false">

        <p:ajax event="close" 
            listener="#{sistemaController.onCloseDlgUsuario}"/>

        <p:outputPanel id="opViewUser">
            <ui:include src="/content.xhtml"></ui:include>
        </p:outputPanel>
    </p:dialog>
    </p:outputPanel>

    </f:view>

    </ui:define>


</ui:composition >

听众方法

public void onCloseDlgUsuario(CloseEvent event){
        System.out.println("onCloseDlgUsuario");
        idRol = null;
        this.fechaInicial = null;
        this.fechaFinal = null;
    }

[UPDATE]

添加XHTMl页面内容.xhtml

content.xhtml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<ui:composition  xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:sec="http://www.springframework.org/security/tags" >

        <script type="text/javascript"> 
            function unloadPage(){
                if(#{sistemaController.renderAutoCompletePersonas}){
                    cleanText('acUsuario_input');
                    document.getElementById('acUsuario_input').focus();
                }
            }
        </script>

        <p:messages showDetail="true"  closable="true"/>

        <h:panelGrid columns="2">

            <p:outputLabel value="Usuario " for="acUsuario" 
                rendered="#{sistemaController.renderAutoCompletePersonas}"/>
             <p:autoComplete id="acUsuario" widgetVar="wvAcUsuario" minQueryLength="3" 
                completeMethod="#{sistemaController.completeListPersonasDisponibles}" var="p"
                value="#{sistemaController.selectedPerson}"
                rendered="#{sistemaController.renderAutoCompletePersonas}" scrollHeight="200"
                itemLabel="#{p.apePaterno} #{p.apeMaterno} #{p.nombre} #{p.nombre2}" 
                itemValue="#{p}" converter="personaConverter" >

            </p:autoComplete>
        </h:panelGrid>
        <h:panelGrid columns="2">
            <p:outputLabel value="Rol" for="sltUserRol"/>
            <p:selectOneMenu id="sltUserRol" value="#{sistemaController.idRol}" >
                <p:ajax event="change" update="sltUserRol" />
                <f:selectItem itemLabel="--Seleccione un Rol--" noSelectionOption="true" itemDisabled="true"/>
                <f:selectItems value="#{sistemaController.listRolesActivos}" var="r"
                    itemLabel="#{r.valor}" itemValue="#{r.id}"/>
            </p:selectOneMenu>
        </h:panelGrid>

        <h:panelGrid columns="3">
            Acceso
            <h:panelGroup>
                <h:outputText value="Desde " />
                <p:commandButton icon="ui-icon-refresh" title="Limpiar"
                    actionListener="#{sistemaController.cleanFechaInicial}" update="clnFechaInicial"/>
                <p:calendar id="clnFechaInicial" value="#{sistemaController.fechaInicial}"
                    widgetVar="wvFechaInicial" pattern="dd/MM/yyyy" mode="inline" locale="es"/>
            </h:panelGroup>
            <h:panelGroup>
                <h:outputText value=" Hasta "/>
                <p:commandButton icon="ui-icon-refresh" title="Limpiar"
                    actionListener="#{sistemaController.cleanFechaFinal}" update="clnFechaFinal"/>
                <p:calendar id="clnFechaFinal" value="#{sistemaController.fechaFinal}"
                    widgetVar="wvFechaFinal" pattern="dd/MM/yyyy" mode="inline" locale="es"/>
            </h:panelGroup>
            <p:commandButton id="btnGuardar" title="Guardar" icon="ui-icon-disk" value="Guardar"
                rendered="#{sistemaController.renderAutoCompletePersonas}"
                actionListener="#{sistemaController.addUserToSystem}"
                oncomplete="unloadPage()"
                update="opDlgUsuario, dtUsersSystem"/>
            <p:commandButton id="btnActualizar" title="Actualizar" icon="ui-icon-disk" value="Actualizar" 
                rendered="#{not sistemaController.renderAutoCompletePersonas}"
                actionListener="#{sistemaController.updateUserSystem}"
                update="opDlgUsuario, dtUsersSystem"/>
        </h:panelGrid>

</ui:composition>

0 个答案:

没有答案