将datagridview导出为ex​​cel的问题

时间:2009-05-26 20:18:30

标签: c# asp.net

我正在尝试将数据网格导出为ex​​cel。出于某种原因,已知的工作方法不起作用。导出是从用户控件完成的。我的页面(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或服务器跟踪来修改响应时。

有什么想法吗?此代码应该可以工作,但几乎就像没有清除响应对象一样。想法?

1 个答案:

答案 0 :(得分:0)

事实证明,自组合框被激活以来,出口没有发生。该事件正在触发,但是,正如错误消息所示,它是响应。写入现有页面,从而抛出错误,这将不允许呈现新文档(在这种情况下为xls)。设置组合框以在页面上进行回发并取消它后,导出开始工作..