본문 바로가기
Web Program/Asp.net Lecture

gridview 에서 엑셀로 export

by 현이빈이 2009. 5. 4.
반응형

GridView 의 데이타를 엑셀로 Export 할경우 다음과 같은 코드를 사용한다.

Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
  Response.Charset = String.Empty;
  Response.ContentType = "application/vnd.xls";
  System.IO.StringWriter sw = new System.IO.StringWriter();
  System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(sw);  
  GridView1.RenderControl(hw);
  Response.Write(sw.ToString());
  Response.End();


하지만 이렇게 사용하면 runat=server 와 form 태그 안에 와야 한다는 에러 메세지가 나타난다.

이를 해결하기 위해서는 다음 코드를 추가 해야 한다.

public override void VerifyRenderingInServerForm(Control control)    {

        // Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time.

}


위 함수를 추가 했을때 다음과 같은 에러가 나타날수 있다.

RegisterForEventValidation은 Render()를 실행하는 동안에만 호출할 수 있습니다.

이럴경우 .aspx 페이지에 EnableEventValidation="false" 추가 한다.

반응형