我正在尝试将数据网格导出为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或服务器跟踪来修改响应时。
有什么想法吗?此代码应该可以工作,但几乎就像没有清除响应对象一样。想法?
答案 0 :(得分:0)
事实证明,自组合框被激活以来,出口没有发生。该事件正在触发,但是,正如错误消息所示,它是响应。写入现有页面,从而抛出错误,这将不允许呈现新文档(在这种情况下为xls)。设置组合框以在页面上进行回发并取消它后,导出开始工作..