ExtJS显示"处理下载"下载文件时

时间:2014-07-07 15:45:08

标签: extjs extjs4 extjs4.1 extjs4.2 extjs-mvc

  

我有我的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直到文件下载。

  

感谢。

2 个答案:

答案 0 :(得分:0)

包含“打印”按钮的父面板应具有属性

waitMsgTarget: true,

并在按钮的处理函数上,在调用onPrint()之前,添加以下行:

waitMsg: 'Processing download...',

希望它有所帮助。

答案 1 :(得分:0)

我结束的解决方案如下:

一个。使用Ajax调用将生成文件但将临时存储在服务器上的服务器方法。这里我显示了一条等待消息

  

该文件的名称是Guid。

B中。在服务器上创建文件后,我使用文件名响应客户端。

℃。成功响应的客户端创建一个IFrame,它的src属性指向刚刚创建的文件URL。

d。该文件已下载。