p:fileDownload的策略,带有对话框和加载状态
Strategy for p:fileDownload with dialog and loading status
带有加载对话框的p:fileDownload
策略
我正试图在开始下载一个文件后制作一个加载栏。我的下载按钮是这样的:
<p:commandButton id="btnFirstType"
styleClass="bt_princ"
value="Download File"
onclick="loading.show()"
ajax="false">
<p:fileDownload value="#{mbean.myFile}"/>
</p:commandButton>
<p:dialog modal="true"
widgetVar="loading"
header="Status"
draggable="false"
closable="false">
<p:graphicImage value="/loading.gif" />
</p:dialog>
我的MBean是这样的:
public StreamedContent getMyFile(){
return this.getReport(Type.CSV); //I assure this works, debugged...
}
问题是,在点击下载按钮后,如果我启动加载对话框,下载就不会发生。我想过用p:poll
来检查一个布尔变量,这样我就知道文件是什么时候生成的,这样我可以在点击按钮后显示对话框(就像用JavaScript设置setTimeout
一样),但这可能是我对整个事情发生方式的错误。还有其他建议吗?
PS1:文件下载后轮询停止,所以我不知道什么时候关闭拨号
PS2:我正在使用Primefaces 2.2,无法更新。
PS3:找到了这个解决方法,但"它将"在版本3上,所以我不能使用它。
我做了与发布在我的问题上的解决方法中建议的相同的操作。我从我的版本下载了primefaces源代码,更改了FileDownloadActionListener类,在响应对象中添加了cookie,在我的页面中,我刚刚用setTimeout启动了一个进程,它将每100毫秒检查一次cookie,当找到它时,将其删除。
相关文章:
- 如何在页面重新加载时显示jquery ui对话框
- Bootstrap在页面加载缓慢时会立即显示隐藏的模式对话框
- 在动态加载的对话框中执行Javascript
- 我们可以加载动态角度对话框吗
- Md 对话框未加载与其关联的控制器
- 无法为动态加载的输入框加载日期选择器和小部件
- 模态对话框加载 jquery 在控制台中执行,但不从应用程序加载.js
- ExtJS4 组合框加载/存储问题
- 脸书评论框加载回调
- 单击CSS框加载另一个网页.CSS 或 js
- 使用 jQuery ajax 从选择框加载 MySQL 数据时遇到困难
- 基于第一个 - JQuery 对话框加载第二个下拉列表
- 传单JS:基于边界框加载平铺层
- 使用ASP.NET MVC站点中的jQuery对话框上载照片
- 按复选框加载特定标记
- 在火狐浏览器中打开并填充下拉框加载
- Ajax在每次色框加载时调用增量次数
- Jquery对话框加载器
- 如何在对话框加载时打开多字段的第一项
- 颜色框加载到页面下方太远