【问题标题】:datatable loading image customization for ajax calls of column filtering用于列过滤的ajax调用的数据表加载图像定制
【发布时间】:2014-07-21 03:36:49
【问题描述】:

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

Data Table Filter demo

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

【问题讨论】:

    标签: ajax jsf primefaces datatable


    【解决方案1】:

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

    <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 请求都将被此页面中定义的自定义捕获。 这对我帮助很大。
    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      • 2013-05-14
      相关资源
      最近更新 更多