在actionListener完成之前更新组件

时间:2018-04-19 19:30:21

标签: jsf primefaces xhtml

我有一个对话框,当用户按下“接受”按钮时,我想在同一个对话框中显示一个ProgressBar,但这是在actionListener完成时的更新。

<p:dialog id="dlgGenerarLista" modal="true" height="180" width="500" header="Generar Lista de Trabajo" widgetVar="dlgGenerarLista">
    <p:commandButton onclick="PF('dlgGenerarLista').hide();" value="Cancel" />
    <p:commandButton id="btnAceptarGenerar" value="Accept"
    actionListener="#{crearEstrategiaBeans.GenerarListaTrabajo}"
    oncomplete="PF('dlgGenerarLista').hide();"update="basic"/> 
    <p:panel id="basic" widgetVar="basic">                 
        <p:progressBar rendered="#{crearEstrategiaBeans.visibilidadBarraProgreso}" id="progressBarIndeterminate"  mode="indeterminate"/>
    </p:panel>   
</p:dialog>

在方法 GenerarListaTrabajo()中我说 visibilidadBarraProgreso =“true”,所以我希望在那一刻它显示progressBar。 progresBar它显示所有过程完成。

1 个答案:

答案 0 :(得分:0)

以下是解决问题的方法:

<h:form id="form">
    <p:commandButton onstart="PF('progressBar').jq.show();" oncomplete="PF('progressBar').jq.hide();" />
    <p:progressBar widgetVar="progressBar" style="display: none;" />
</h:form>

简短说明:使用PF('progressBar'),您将获得进度条的PrimeFaces JavaScript对象。使用jq,您将获得进度条的jQuery元素。然后你可以使用jQuery方法显示和隐藏。