数据表加载图像自定义列调整的ajax调用

时间:2014-07-21 03:36:50

标签: ajax jsf primefaces datatable

我也使用primefaces datatable进行列过滤和全局过滤 在我们的应用程序中,我们使用自定义<p:ajaxStatus>来捕获所有ajax调用并显示"Please wait.."消息,直到请求完成。它阻止了完整的用户界面 除了我要描述的场景之外,这完全匹配所有场景 我想在datatable中进行列特定的过滤,如果我输入一些文本,则会触发ajax调用并且屏幕被自定义ajax对话框阻止,并显示消息"Please wait.."
但我不希望这个特定的ajax调用被全局ajax困住。如果我们使用属性global="false",那么它就不会执行全局ajax 但是在数据表中,我无法在global="false"中将<p:column >作为属性 在这种情况下,我只想在右下角向他展示加载图像,就像所有数据表过滤一样。检查以下链接我想如何实现。

Data Table Filter demo

在上面的示例中未提供代码。那么我该如何实现呢? 任何想法都受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

要捕获所有ajax请求,我们在主布局页面中定义了<p:ajaxStatus> 这是捕获所有ajax请求 所以为了克服这个问题,我在我的包含页面中定义了相同的布局页面,并删除了阻止完整UI的自定义<p:ajaxStatus>。布局页面中有问题的代码:

<div id="container">
        <div id="content">
            <ui:insert name="content" />
        </div>
        <ui:insert name="dialog">
        </ui:insert>
    </div>  

在包含的页面中,我们将内容定义为

<ui:define name="content">
        <h1>Test Application</h1>
</ui:define>  

解决方案

 <p:ajaxStatus style="width:64px;height:64px;position:fixed;right:5px;bottom:5px">  
    <f:facet name="start">  
        <p:graphicImage name="loading.gif" library="images"></p:graphicImage>
    </f:facet>  

    <f:facet name="complete">  
        <h:outputText value="" />  
    </f:facet>  
</p:ajaxStatus>
    <div id="container">
        <div id="content">
            <ui:insert name="content" >
                     <h1> Test Application </h1>
           </ui:insert>
       </div>
  </div>  

因此,此页面中的任何ajax请求都将被此页面中定义的自定义捕获。 这给了我很多帮助 希望它有所帮助