Primefaces对话框hide()函数也隐藏咆哮



当我在按钮提交上使用primefaces组件对话框时:onstart(PF(").show()) oncomplete(PF(").hide()),隐藏对话框也使growl消失,growl显示来自托管bean的消息。和http://forum.primefaces.org/viewtopic.php?f=3&t=29036一样的问题谢谢你的建议。

<p:growl id="growl" life="7000" redisplay="true" autoUpdate="true" showDetail="true" />
<p:commandLink onstart="PF('statusDialog').show()" oncomplete="PF('statusDialog').hide()" update="users" actionListener="#{userBean.delete(user)}" styleClass="ui-icon ui-icon-trash" >

如何解决这个问题?

试试这个:

我的咆哮:

<p:growl id="messages" showDetail="false" autoUpdate="true" sticky="true" />

调用dialog的按钮:

<p:commandButton global="false"
             icon="#{ico.ico_editar}"
             title="#{act.btn_editar}"
             update=":#{p:component('dAdmObjetivo')}"
             oncomplete="PF('dlgAdmObjetivo').show();"/>

我的对话:

<p:dialog id="dAdmObjetivo"
      widgetVar="dlgAdmObjetivo"
      modal="true"
      closeOnEscape="true"
      minHeight="300"
      hideEffect="fade"
      showEffect="fade"
      resizable="false"
      showHeader="false"
      appendTo="@(body)">
<h:form>
    <h:panelGrid columns="3" style="float: right;margin: 10px 0px 10px 0">
        <p:commandButton value="#{act.btn_guardar}"
                         actionListener="#{bean.registrarObjetivo()}"
                         update=":#{p:component('pnlObjetivos')}"
                         icon="#{ico.ico_guardar}" />
        <p:spacer width="5"/>
        <p:commandButton value="#{act.btn_cerrar}"
                         global="false"
                         icon="#{ico.ico_cerrar}"
                         onclick="PF('dlgAdmObjetivo').hide();">
        </p:commandButton>
    </h:panelGrid>
</h:form>

我在bean中的方法:

public void registrarObjetivo() {
/**
 * Your code
 */
/**
/**
 * Hide dialog
 */
 RequestContext context = RequestContext.getCurrentInstance();
 context.execute("PF('dlgAdmObjetivo').hide();");
 /**
 * The growl message
 */
FacesMessage fmsg = new FacesMessage(FacesMessage.SEVERITY_INFO, "El objetivo se registró correctamente", null);
FacesContext.getCurrentInstance().addMessage(null, fmsg);

}

最新更新