【问题标题】:Issues exporting datagridview to excel将datagridview导出到excel的问题
【发布时间】: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 或启用了服务器跟踪来修改响应。

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

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    事实证明,由于组合框被 ajaxified,导出没有发生。该事件正在触发,但正如错误消息所述,它是 response.writing 到现有页面上,因此引发错误,这将不允许呈现新文档(在本例中为 xls)。将组合框设置为在页面上进行回发并取消 ajaxifying 后,导出开始工作..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 2013-09-11
      • 2011-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多