当前位置: 代码迷 >> ASP.NET >> 将GridView中内容导出到Excel,异常
  详细解决方案

将GridView中内容导出到Excel,异常

热度:3050   发布时间:2013-02-25 00:00:00.0
将GridView中内容导出到Excel,错误?
--书上原代码--
private void Export(string FileType, string FileName)
  {
  Response.Charset = "GB2312";
  Response.ContentEncoding = System.Text.Encoding.UTF7;
  Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
  Response.ContentType = FileType;
  this.EnableViewState = false;
  StringWriter tw = new StringWriter();//using System.IO;
  HtmlTextWriter hw = new HtmlTextWriter(tw);
  GridView1.RenderControl(hw);
  Response.Write(tw.ToString());
  Response.End();
  }
  protected void Button2_Click(object sender, EventArgs e)
  {
  //Ex
  Export("application/ms-excel", "aaa.xls");
  }
  public override void VerifyRenderingInServerForm(Control control)
  {
  //什么都不写
  }
---------------------------------------------------------------------------------------------
错误为:

“/WebSite2”应用程序中的服务器错误。
--------------------------------------------------------------------------------

只能在执行 Render() 的过程中调用 RegisterForEventValidation; 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.InvalidOperationException: 只能在执行 Render() 的过程中调用 RegisterForEventValidation;

源错误: 


行 71: StringWriter tw = new StringWriter();//using System.IO;
行 72: HtmlTextWriter hw = new HtmlTextWriter(tw);
行 73: GridView1.RenderControl(hw);
行 74: Response.Write(tw.ToString());
行 75: Response.End();
 
请各位大侠帮忙!嘿嘿~~

------解决方案--------------------------------------------------------
这里有现成的源代码,下载调试成功后逐行学习代码,然后再解决书上代码的问题

http://www.cnblogs.com/stswordman/archive/2006/08/24/485641

------解决方案--------------------------------------------------------
一次全导出可以,但是要用Gridview所绑定的数据集入手,数据集里面是完整没分页的数据。
  相关解决方案