p:ajaxStatus没有从惰性数据表接收oncomplete事件

时间:2014-02-10 13:16:12

标签: ajax jsf primefaces

我正在使用Primefaces 3.5并尝试在更新延迟加载的数据表时显示“加载”图像。在下面的AjaxStatus元素中,当通过commandButton操作更新数据表时,将显示“ajax-loader”图像。但是,当ajax调用和表更新完成时,图像不会消失。换句话说,未收到onComplete事件。

<p:ajaxStatus style="width:260px;" id="ajaxStatusPanel">  
    <f:facet name="start">  
        <h:graphicImage value="../images/ajax-loader.gif" />  
    </f:facet>  

    <f:facet name="complete">  
        <h:outputText value="" />  
    </f:facet>  
</p:ajaxStatus> 

以下是包含commandButton和数据表的表单的一部分:

<h:form> 

<p:panel toggleable="true" toggleSpeed="300" header="FILTER RESULTS">  
    <table align="center">
        <tr>
            <td>NAME: </td>
            <td><h:inputText value="#{personBean.personLazyData.paramName}" /></td>
        </tr>
        <tr>
            <td>PLACE OF BIRTH : </td>
            <td><h:inputText value="#{personBean.personLazyData.paramPlaceOfBirth}" /></td>
        </tr>

        <tr>
            <td colspan="2" align="center">
                <p:commandButton value="Update" global="true" 
                    actionListener="#{personBean.onFilterChanged}" 
                    update="personListTable"/>
            </td>
        </tr>
    </table>
</p:panel>

<p:dataTable id="personListTable" rendered="#{personBean.superUser}" var="person" 
        value="#{personBean.personLazyData}" emptyMessage="Not found."
        paginator="true" rows="20" lazy="true" selection="#{personBean.selectedPersons}" global="true"
        paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}" 
        rowsPerPageTemplate="20,50,100">            

            <f:facet name="header">SURVEYS</f:facet>

            <p:column selectionMode="multiple" style="width:2%" />  

            <p:column headerText="ID" >
                <h:outputText value="#{person.id}"/>
            </p:column>      

            <p:column headerText="NAME" >
                <h:outputText value="#{person.name}"/>
            </p:column>

            <p:column headerText="SURNAME" >
                <h:outputText value="#{person.surname}" />
            </p:column>

</p:dataTable>

有没有人遇到类似的问题?

另一个注意事项:如果没有渲染数据表(或者我将渲染属性更改为false),加载图像会显示并消失很短的时间,因为没有数据被检索。

1 个答案:

答案 0 :(得分:0)

当我将primefaces版本更新为4.0

时,问题得以解决