【发布时间】:2016-08-09 01:43:25
【问题描述】:
有以下问题:有p:remoteCommand在页面加载后延迟加载p:dataTable,但是在ajax请求期间没有显示“p:ajaxStatus”的加载指示...
p:remoteCommand 发送数据延迟加载请求时,如何让“p:ajaxStatus”显示在页面上?
页面上的代码:
<h:form id="form">
<p:remoteCommand name="loadLazyData" action="#{crmBackingBean.crmOnControlLazyInit}" autoRun="true" process="@this" update="dtCrmOnControl" />
<p:dataTable id="dtCrmOnControl" var="rowData" value="#{crmBackingBean.crmOnControlLazy}" widgetVar="dtCrmOnControl" rows="#{crmBackingBean.crmDTonControlRows}" paginator="true" ..... lazy="true" >
.......................................................
</p:dataTable>
</h:form>
我用的是Atlas主题,p:ajaxStatus位于它原来的地方,在template.xhtml中:
<p:ajaxStatus style="width:40px; height:40px; position:fixed; right:30px; bottom:30px; z-index:999999;">
<f:facet name="start">
<i class="fa fa-circle-o-notch fa-spin Green Fs40"></i>
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
谢谢!
版本:PrimeFaces 6.0.2; PrimeFaces Atlas 主题 1.1.1; GlassFish 4.1.1 与 JSF 2.2.12 (Mojarra)
【问题讨论】:
-
如果您使用
<p:commandButton type="button" onclick="loadLazyData" />并手动单击按钮,它是否有效?如果您在同一个表单中使用<p:ajaxStatus>是否有效? -
@Kukeltje,谢谢,
<p:commandButton type="button" onclick="loadLazyData();" />有效,实际上它使我能够找到解决方案:我使用标准的 PrimeFaces Atlas 主题,其标准模板在 @987654328 之后包含<p:ajaxStatus />标签@,因此显然 ajaxStatus 只是在 remoteCommand 之后加载时根本没有“听到”“remoteCommand”(实际上不确定它是错误还是功能......)所以基本上我的修复只是将<p:ajaxStatus />移到上面并把它作为 ` ` code 之后的第一个标签 -
请将此创建为答案,但请确保在问题和答案中添加正确的版本信息!请在 PF 问题列表中提交错误。如果不是错误,至少应该记录在案!
标签: primefaces jsf-2.2