在Response.End()之后更改标签文本

时间:2011-08-12 06:25:13

标签: c# .net asp.net

我在点击按钮时将报告导出到excel文件中。当用户点击按钮时,我显示消息“报告正在生成..”。生成报告后,我想隐藏消息。但是当我使用Response.End()时,消息并未隐藏。任何人都可以告诉我如何在Response.End()之后调用服务器端或java脚本代码或者以其他方式建议我吗?

4 个答案:

答案 0 :(得分:3)

通常为此我们打开第二个页面,这种弹出窗口只包含数据流,因此浏览器建议保存或打开文件。

这是在另一个Response对象中完成的,因此我们仍然可以控制我们的主响应对象,而不会出现关闭或终止的问题。

显示一些代码,让我们看看你现在是怎么做的。

答案 1 :(得分:1)

使用ajax。

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

答案 2 :(得分:0)

答案 3 :(得分:0)

与Davide的解决方案类似;我们通过打开新页面来解决这个问题。

假设你有一个名为Report.aspx的页面,那么它也恰好有一个'export to excel'按钮。如果由于某种原因,您无法将该功能提取到静态方法中,则可以执行以下操作:

在您的页面上,当用户点击导出到Excel按钮时:

  1. 创建宽度/高度为iframe的iframe:1px / 1px
  2. 将网址设置为页面,但传递所有必要参数以生成报告
  3. 在Report.aspx的page.load或page.prerender上,让它使用参数来执行报告并在流上吐出。
  4. 这样,您的网页仍然有效。