반응형
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" 추가 한다.반응형