在 actionListener 完成之前更新组件

Update component before actionListener finish

我有一个对话框,当用户按下按钮时'Accept'我想在同一个对话框中显示一个 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" ,所以我想在那一刻显示进度条。当所有过程完成时,它会显示 progresBar。

以下是针对您的问题的有效解决方案:

<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方法显示和隐藏。