在界面中有一个Gridview控件,该控件中显示数据,并在每行数据的最后一列放入一个LinkButton用于导出数据,在导出数据时需要花费很长的时间!所以我在下载时显示了一个层用来提醒用户:正在准备数据。。。。 FileInfo info = new FileInfo(filepath);//打开文件流 long fileSize = info.Length;//指定文件大小 Response.Clear(); Response.ContentType = "application/ms-excel"; Response.AddHeader("Content-Disposition", "attachement;filename=" + filename); Response.AddHeader("Content-Length", fileSize.ToString()); Response.WriteFile(filepath, 0, fileSize); 在该处我添加了一行代码,隐藏我之前显示的层,怎么不起作用,代码如下: 第一种方式: Page.RegisterClientScriptBlock("gg", "<script>hideDiv();</script>"); 第二种方式: this.asa.Style["display"] = "none"; this.asaimsgbg.Style["display"] = "none"; Response.Flush(); Response.Close(); 两种方式都试过了,代码执行但是层不隐藏。我用一个单独的页面上面放置一个LinkButton做同样的隐藏操作都是可以的,不知道是什么问题,请各位大侠帮帮忙!
我需要实现的是在弹出另存为下载框前,将提示的层隐藏掉
|
在前台进行处理,我怎么知道我后台的相关处理已经完成,需要做隐藏操作
那你应该都放在前台处理
在前台进行处理,我怎么知道我后台的相关处理已经完成,需要做隐藏操作
@妈妈的宝: ajax呀
@田林九村:Ajax不是很熟,希望提供一点思路!谢谢
不行的,下载文件的响应不会作为html输出到页面的,后台怎么写都不会到前台去。
那我采用什么方式来解决这种情况了,下载时给出提示,弹出另存为下载框时隐藏掉提示。有没有什么好的解决方案。很急,谢谢各位!
@妈妈的宝:
貌似没什么好办法。
简单的方法是窗口失去焦点时隐藏掉提示。
复杂点的,点击下载后,用ajax请求下后台查看下处理情况,处理完了才返回隐藏提示(查看下处理情况,这里用到后台的异步请求)。
劝楼主像这样 有等待提示的,用ajax做,js控制html最好了,不要在后台写,或者楼主你新打开一个网页去下载页可以