기존 엑셀 내보내기 방법으로 DataGrid에선 문제가 없지만 GridView를 사용하면
형식 'GridView'의 컨트롤 'gvList'은(는) runat=server 구문과 함께 form 태그 내부에 와야 합니다.
설명: 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 스택 추적을 검토하여 발생한 오류 및 코드에서 오류가 발생한 위치에 대한 자세한 정보를 확인하십시오.
예외 정보: System.Web.HttpException: 형식 'GridView'의 컨트롤 'gvList'은(는) 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.
}
위의 구문을 페이지 내에 추가해 주면 깔끔하게 해결~
이렇게 하면 GridView를 통해 엑셀로 내보내기가 가능합니다~
엑셀로 내보내는 소스는
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=DataGrid.xls");
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
DataGrid1.RenderControl(htmlWriter);
Response.Write(stringWriter.ToString());
Response.End();
}
'.NET' 카테고리의 다른 글
현재 문자열이 문자열A와 문자열B 사이에 해당하는 문자인지 비교하기.. (2) | 2008.07.16 |
---|---|
URL 통신 샘플 코드 (1) | 2008.07.16 |
asp.net 에서 post 전송 (4) | 2008.04.28 |
C# Coding Guidlines (3) | 2008.04.28 |
[DBguide]성능 이슈 해결을 위한 닷넷 프로그래밍 최적화 기법 (0) | 2008.04.28 |