我有一个简单的C#ASP.NET应用程序,它可以生成一个Excel文件并使用Response.WriteFile()函数将其发送到浏览器。文件完成下载到浏览器后,如何修改页面?
我想一旦被点击禁用提交按钮,并在屏幕上显示一条消息,等待几分钟,因为某些文件可能需要一段时间才能产生。这很好,但我无法弄清楚如何在文件完成下载后重新激活按钮,甚至刷新页面。即使完成,页面仍处于禁用状态,“请稍候...”状态。
我想到了一个同步AJAX调用额外的JavaScript命令后会工作,不过虽然文件确会产生的,它从来没有发送给浏览器。我也尝试使用iframe控件,但无法找到任何方式可靠地知道新文件何时完成加载。
在此先感谢任何人谁可以帮助!
更新:我在http://code.msdn.microsoft.com/AjaxFileDownload找到了一个可行的解决方案,它非常适合下载已存在的文件,但是当我调用生成该文件并以Response.End()结束的页面时,“Finished Downloading”事件从不触发。
你无法通过JavaScript知道这个文件是 “完成下载” 的时候。这是浏览器。至于服务器“完成生成”,那么Stephen的解决方案就够公平了。 –
尝试类似[this](http://stackoverflow.com/a/4168965/585552) – Greg