【发布时间】:2009-05-26 20:18:29
【问题描述】:
我正在尝试将数据网格导出到 Excel。由于某种原因,已知的工作方法不起作用。导出是从用户控件完成的。我的页面 (default.aspx) 使用母版页,并且该页面有一个用户控件,该控件实际上具有我要导出的数据网格。
这是我在 ascx 上的代码:
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
Response.ContentType = "application/excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
_gvwResults.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
在我的 default.aspx(包含 ascx 的页面)上是这样的代码:
public override void VerifyRenderingInServerForm(Control control)
{
/* Confirms that an HtmlForm control is rendered for the specified ASP.NET
server control at run time. - required to export file */
}
这是我收到的错误: Sys.Webforms.pagerequestmanagerparsererrorexception。无法解析从服务器接收到的消息。此错误的常见原因是通过调用 Response.Write()、响应过滤器、httpmodules 或启用了服务器跟踪来修改响应。
有什么想法吗?此代码应该可以工作,但几乎就像响应对象没有被清除一样。想法?
【问题讨论】: