我有我的ExtJS 4.2.1应用程序,我有一个报告部分,用于生成和下载PDF报告。
现在,在我的控制器中,我有这个用于下载文件:
onPrint: function() {
Ext.core.DomHelper.append(document.body, {
tag: 'iframe',
id: 'downloadIframe',
frameBorder: 0,
width: 0,
height: 0,
css: 'display:none;visibility:hidden;height:0px;',
src: '/api/report/GenerateReport'
});
}
工作正常,但有报道采用5 to 10 seconds to generate
,因此用户可能click
多次Print
按钮,因为他不知道文件&# 39;正在生成。
如何显示面具"处理下载"或其他什么,所以我阻止UI直到文件下载。
感谢。
答案 0 :(得分:0)
包含“打印”按钮的父面板应具有属性
waitMsgTarget: true,
并在按钮的处理函数上,在调用onPrint()之前,添加以下行:
waitMsg: 'Processing download...',
希望它有所帮助。
答案 1 :(得分:0)
我结束的解决方案如下:
一个。使用Ajax调用将生成文件但将临时存储在服务器上的服务器方法。这里我显示了一条等待消息
该文件的名称是Guid。
B中。在服务器上创建文件后,我使用文件名响应客户端。
℃。成功响应的客户端创建一个IFrame,它的src属性指向刚刚创建的文件URL。
d。该文件已下载。