首页 > 解决方案 > Primefaces 8 ajax状态在p:dataTable分页后没有隐藏

问题描述

我有一个延迟加载的 primefaces 8 数据表,如下所示:

<p:dataTable value="#{....model}" var="..." rows="20" lazy="true"
                                     paginator="true" paginatorPosition="bottom"
                                     paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                     currentPageReportTemplate="{startRecord}-{endRecord} of {totalRecords} records"
                                     emptyMessage="No records found">
....
</p:dataTable>

和 ap:ajaxStatus 定义如下:

<p:ajaxStatus onstart="PF('statusDialog').show()" onsuccess="PF('statusDialog').hide()"/>
    <p:dialog widgetVar="statusDialog" modal="false" draggable="false" closable="false" resizable="false"
              showHeader="false"
              styleClass="app-loader-dialog">
        <div id="app-loader" class="app-loader">
            <div class="app-loader-content">
                loading...
            </div>
        </div>
    </p:dialog>

我注意到的问题是,当分页时,状态对话框打开,但即使在分页完成后它仍然保持打开状态,预计它会隐藏。

但是对于其他 ajax 活动,例如依赖下拉列表等,它会适当地显示和隐藏。

我该如何解决这个问题?

标签: jsfprimefaces

解决方案


我将 dataTable 包装在 ah:form 中,现在它可以工作了。


推荐阅读