你的原因可能是gridview分页了 导出的时候会发生这样的问题
两种方法
第一种:
   <%@ Page Language="C#" ... EnableEventValidation="false"%>加上这个EnableEventValidation="false" 但是这样的话是不会出现这个错误的 但是你导出的excel文件只有第一页 如果想完全导出来
用第二种方法:
             GridView1.AllowPaging   =   false;
           GridView1.DataSourceID=**; //或者DataSource 重新指定
                GridView1.DataBind(); 
                GridView1.RenderControl(htmlWrite);                 Response.Write(stringWrite.ToString()); 
                Response.End();       
 // GridView1.AllowPaging   =   true; //删除不用
               // GridView1.DataBind();  //删除不用

解决方案 »

  1.   

    http://blog.csdn.net/xianfajushi/archive/2009/11/18/4830278.aspx
      

  2.   

    偶的没有分页, 为什么也报这个异常?!!
    很崩溃, 不过, 貌似你的解决方法管用.还有就是导出到Excel后,里面好像还有控件,看不到,但是点的话提示 "该××可能危害您的计算机..." 
    谢谢了~
    O(∩_∩)O~
      

  3.   

    就目前我所发现的原因有二:
    1、GridView控件启用了分页。在导出前将allowpaging=false
    导出后再改回
    2、GridView表中不光有数据还有控件将含有控件的行visible=false
      

  4.   

    那个DataSourceID 怎么样制定了呀!我用的不是GridView自带的分页,怎么解决了呀!
      

  5.   

    GridView1.DataSourceID=**; //或者DataSource 重新指定
      GridView1.DataBind();  
    已经把**后面分号改成英文格式了,怎么还是编辑错误啊?