日期:2014-05-18  浏览次数:20395 次

将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.html

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