ASP.NET AJAX 1.0 中如何实现将GridView控件中的数据导出到Excel?
在   ASP.NET   2.0   中将GridView控件中的数据导出到Excel的代码运行无误,但在ASP.NET   AJAX   1.0中就出错,如何解决这个问题? 
 以下是将GridView中的数据导出到Excel的代码:    
 protected   void   Button8_Click(object   sender,   EventArgs   e)    
 {    
 Response.Clear();    
 Response.Buffer   =   true;    
 Response.Charset   =    "GB2312 ";    
 Response.AppendHeader( "Content-Disposition ",    "attachment;filename=FileName.xls ");    
 //   如果设置为   GetEncoding( "GB2312 ");导出的文件将会出现乱码!!!    
 Response.ContentEncoding   =   System.Text.Encoding.UTF7;    
 Response.ContentType   =    "application/ms-excel ";//设置输出文件类型为excel文件。    
 System.IO.StringWriter   oStringWriter   =   new   System.IO.StringWriter();    
 System.Web.UI.HtmlTextWriter   oHtmlTextWriter   =   new   System.Web.UI.HtmlTextWriter(oStringWriter);    
 this.GridView1.RenderControl(oHtmlTextWriter);    
 Response.Output.Write(oStringWriter.ToString());    
 Response.Flush();    
 Response.End();    
 }    
 public   override   void   VerifyRenderingInServerForm(Control   control)    
 {   } 
 在ASP.NET2.0框架中当用GridView导出Execl的时候,会发生只能在执行   Render()   的过程中调用   RegisterForEventValidation的错误提示。    
 有两种方法可以解决以上问题:    
 1.修改web.config(不推荐) <pages   enableEventValidation   = "false "   >  </pages>     
 2.直接在导出Execl的页面修改        
  <%@   Page   Language= "C# "   EnableEventValidation   =    "false "   AutoEventWireup= "true "   CodeFile= "ExportGridView.aspx.cs "   Inherits= "ExportGridView "   %>     
------解决方案--------------------不能用Response()这个方法。用ScriptManager.RegisterClientScriptBlock()等方法代替看看
------解决方案--------------------把 Button 放到UpdatePanel 外邊就可以了 。