首页 新闻 会员 周边

关于ASP.net下载前调用JS代码不起作用的问题

0
悬赏园豆:20 [待解决问题]
在界面中有一个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做同样的隐藏操作都是可以的,不知道是什么问题,请各位大侠帮帮忙! 

我需要实现的是在弹出另存为下载框前,将提示的层隐藏掉

 
问题补充:

在前台进行处理,我怎么知道我后台的相关处理已经完成,需要做隐藏操作

妈妈的宝的主页 妈妈的宝 | 初学一级 | 园豆:182
提问于:2012-10-09 14:15
< >
分享
所有回答(3)
0

那你应该都放在前台处理

田林九村 | 园豆:2367 (老鸟四级) | 2012-10-09 14:21

在前台进行处理,我怎么知道我后台的相关处理已经完成,需要做隐藏操作

支持(0) 反对(0) 妈妈的宝 | 园豆:182 (初学一级) | 2012-10-09 14:25

@妈妈的宝: ajax呀

支持(0) 反对(0) 田林九村 | 园豆:2367 (老鸟四级) | 2012-10-09 14:32

@田林九村:Ajax不是很熟,希望提供一点思路!谢谢

支持(0) 反对(0) 妈妈的宝 | 园豆:182 (初学一级) | 2012-10-09 15:12
0

不行的,下载文件的响应不会作为html输出到页面的,后台怎么写都不会到前台去。

向往-SONG | 园豆:4853 (老鸟四级) | 2012-10-09 14:51

那我采用什么方式来解决这种情况了,下载时给出提示,弹出另存为下载框时隐藏掉提示。有没有什么好的解决方案。很急,谢谢各位!

支持(0) 反对(0) 妈妈的宝 | 园豆:182 (初学一级) | 2012-10-09 15:00

@妈妈的宝: 

貌似没什么好办法。

简单的方法是窗口失去焦点时隐藏掉提示。

复杂点的,点击下载后,用ajax请求下后台查看下处理情况,处理完了才返回隐藏提示(查看下处理情况,这里用到后台的异步请求)。

支持(0) 反对(0) 向往-SONG | 园豆:4853 (老鸟四级) | 2012-10-09 16:51
0

劝楼主像这样 有等待提示的,用ajax做,js控制html最好了,不要在后台写,或者楼主你新打开一个网页去下载页可以

架构师修行之路 | 园豆:322 (菜鸟二级) | 2012-10-09 15:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册