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