2009-11-03 41 views
0

工作vs05.when我出口的GridView到Excel比我得到下面的錯誤GridView中脫穎而出的asp.net

RegisterForEventValidation只能渲染期間被稱爲();

爲什麼我得到這個錯誤。如何解決它?

public void ToExcel() 
{ 
    string attachment = "attachment; filename=Employee.xls"; 
      Response.ClearContent(); 
      Response.AddHeader("content-disposition", attachment); 
      Response.ContentType = "application/ms-excel"; 
      StringWriter stw = new StringWriter(); 
      HtmlTextWriter htextw = new HtmlTextWriter(stw); 
      gvSearch.RenderControl(htextw); 
      Response.Write(stw.ToString()); 
      Response.End(); 
} 


public override void VerifyRenderingInServerForm(Control control) 
    { 

    } 

回答

0

// - 添加在Excel

Response.ContentEncoding = Encoding.Unicode; 
        Response.BinaryWrite(Encoding.Unicode.GetPreamble()); 

        gvSearch.EnableViewState = false; 

//處理特殊字符 - 添加到處理特殊字符在Excel

添加這些行,看看是否有幫助。

StringWriter stw = new StringWriter(); 
      HtmlTextWriter htextw = new HtmlTextWriter(stw); 
      gvSearch.RenderControl(htextw); 
      Response.Write(stw.ToString()); 
      Response.End(); 
} 

這是在黑暗中的一槍。

+0

我仍然得到這個錯誤「RegisterForEventValidation只能在Render();」期間調用;「 – HelloBD 2009-11-04 03:28:03

0

in aspx頁面,將以下內容更改爲false:AllowPaging =「False」AllowSorting =「False」並刪除Pagesize =「10」。