Pubblicato da: cursao11 | gennaio 21, 2010

asp.net ajax. Export in Excel del contenuto di una gridview contenuta in un UpdatePanel

Esportare in excel il contenuto di una gridview, è semplice, ma può dare qualche problemino se siamo in presenza di updatePanel. Il codice che posto, mi è stato molto utile per un progetto, nel quale dovevo esportare i dati contenuti in una gridView a sua volta contenuta in un updatePanel.

Per far funzionare il tutto è sufficiente aggiungere, all’interno dello stesso updatePanel che contiene la gridview, un pulsante, per il quale gestiremo l’evento click.

Il codice da inserire nell’evento click del nostro pulsante è il seguente:


Response.Clear();
Response.AddHeader(”content-disposition”, “attachment;filename=FileName.xls”);
Response.Charset = “”;
Response.ContentType = “application/vnd.ms-excel”;
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
gv.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();

A questo punto per far si che tutto funzioni come desideriamo dobbiamo fare ancora due piccoli passi:

1. Dire al nostro updatePanel di gestire correttamente l’evento del nostro pulsante:

...
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="btnExport" />
    </Triggers>
</asp:UpdatePanel>
...

2. Eseguire l’override del metodo VerifyRenderingInServerForm(Control control):

public override void VerifyRenderingInServerForm(Control control)
{
// Confirms that an HtmlForm control is rendered for the
//specified ASP.NET server control at run time.
}

Posto questo articolo principalmente per due ragioni: la prima è che quando mi sarò scordato questo trucchetto almeno potrò leggerlo sulle mie pagine; la seconda ma non meno importante è che spero che sia utile a qualcuno di voi che mi legge

Ciao Ragazzi…
stay tuned

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Categorie

%d blogger hanno fatto clic su Mi Piace per questo: