在PE开始时显示状态:出口商和隐藏状态完成后



与p的开始时非常相似:p:filedownload和隐藏状态完成

时隐藏状态

但是在这种情况下,我有一个数据词,该数据词需要很长时间才能导出,因此我需要PE:出口商在用户单击导出按钮并在导出文件时显示旋转器或状态发送回客户。

目前我的导出按钮看起来像:

<h:commandLink style="float:right;padding:3px;margin-top:2px;" immediate="true" 
  styleClass="fa fa-file-pdf-o" title="Export to PDF">
  <pe:exporter type="pdf" encoding="iso-8859-1" target="datatable"
    fileName="ExportResult"/>
</h:commandLink>

我有PrimeFaces 6.0

好吧,我找到了一个解决方案。

<h:commandLink style="float:right;padding:3px;margin-top:2px;" immediate="true"           styleClass="fa fa-file-pdf-o" title="Export to PDF"
  onclick="PrimeFaces.monitorDownload(startHandler, endHandler)">
  <pe:exporter type="pdf" encoding="iso-8859-1" target="dataTable"
    fileName="resultadoConsulta"/>
</h:commandLink>

请注意onclick="PrimeFaces.monitorDownload(startHandler, endHandler)"部分。

这是解决方案的第一部分。Starthandler和Endhandler是JavaScript函数,显示并隐藏了旋转器,例如P:FileDownload Showcase中的旋转器。

第二部分是棘手的。我有一个自定义出口商,并且在响应中缺少这一行:

externalContext.addResponseCookie(Constants.DOWNLOAD_COOKIE, "true", Collections.<String, Object> emptyMap());

这一行代码设置了PrimeFaces的Monitordownload功能所期望的标志。

之后,一切都在工作!

最新更新