Primefaces <p:blockUI> 释放后隐藏咆哮<p:growl>



我试图通过点击backingbean中的按钮来更新消息,同时在点击按钮后,我试图阻止这个按钮以避免双击。阻止成功发生并显示消息,但在取消阻止消息消失之后。这种情况发生得很快。我希望咆哮中的信息停留更长时间。我的.jsf片段。

<h:form id="form">
    <p:growl id="messages" />
    <p:blockUI block="button" widgetVar="block"/>
        <p:dataTable var="item" id="table" value="#{bean.lazyModel}"
            lazy="true">
            <p:column>
                <p:commandButton value="#{item.actionBtn}" 
                    update=":form:messages" action="#{bean.action}"
                    oncomplete="filterTableFromPanel();PF('block').hide()"
                    onclick="PF('block').show()">
                </p:commandButton>
            </p:column>
        </p:dataTable> 
</h:form>

一切如常。

public void action(){
   FacesContext.getCurrentInstance().addMessage(null, msg);
}

请原谅我可能犯的错误,狙击手被裁掉了。

您可以选择设置stickylife:

  • sticky使growl保持可见,直到用户手动关闭咆哮部件

  • life来设置组件的超时周期。此值将确定消息可见的时间,然后在life结束后消息消失。以毫秒为单位设置此值life="1200"(默认为6000

我已经使用p:remoteCommand解决了问题。

<h:form id="form">
    <p:growl id="messages" />
    <p:blockUI block="button" widgetVar="block"/>
    <p:remoteCommand name="addMessage"
			action="#{bean.addMessage}"
			update=":form:messages" />
        <p:dataTable var="item" id="table" value="#{bean.lazyModel}"
            lazy="true">
            <p:column>
                <p:commandButton value="#{item.actionBtn}" 
                    update=":form:messages" action="#{bean.action}"
                    oncomplete="filterTableFromPanel();PF('block').hide(); addMessage()"
                    onclick="PF('block').show()">
                </p:commandButton>
            </p:column>
        </p:dataTable> 
</h:form>

在backingbean中,我添加了一些类似的内容:

public void addMessage(){
   FacesContext.getCurrentInstance().addMessage(null, "msg");
}

相关内容

  • 没有找到相关文章

最新更新