Ho trovato vari esempi in rete dovendo esportare un GridView asp.net 2.0 in Excel.
Vi posto come fare nel caso in cui il gridview usato sia usato semplicemente usato da designer e paginato:
Mettere nel codebehind il codice del bottone/link server e anche l'override di "VerifyRenderingInServerForm"
protected void linkExportToExcel_Click(object sender, EventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=ElencoUtentiSM.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView dg = new GridView();
dg = this.GridView1;
dg.AllowSorting = false;
dg.AllowPaging = false;
dg.DataBind();
dg.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
/* Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time. */
}
E' importante mettere nella pagina aspx la direttiva EnableEventValidation="false" come sotto riportato
<%@ Page Language="C#" MasterPageFile="~/Include/MasterPages/BO.master" EnableEventValidation="false" ....