Exportar de um gridView para Excel
Olá pessoal.
Sabe quando agente estima um prazo para o término do projeto e na sua agenda existem aquelas funções que você pensa "putz...isso aqui..faço em 30 minutos..." pois é né, já devem imaginar... os 30 minutos já se transformaram em horas e horas de dor de cabeça.
O que acontece, tenho uma página Asp.Net e no click do botão eu preciso exportar o conteúdo de um gridView para Excel, as funções que tentei usar todas elas passam pela mesma linha (segue abaixo):
Linhas que origina o erro: Response.End();
Exceção: "Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack."
Aqui segue o código completo que tenho usado: (pelo que entendi, o erro acontece porque eu tento finalizar algo que ainda não terminou de processar, há idéia de paralizar o código por um tempo antes de fechar, não deu certo.)
protected void Button2_Click(object sender, EventArgs e)
{
try
{
Class1 oCls = new Class1();
GridView1.PageIndex = 0;
GridView1.DataSource = null;
GridView1.DataSource = oCls.CargaLLIst().DefaultView;
GridView1.DataBind();
if (GridView1.Rows.Count > 0)
{
GridView1.AllowSorting = false;
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
System.Web.UI.HtmlControls.HtmlForm form = new System.Web.UI.HtmlControls.HtmlForm();
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=flow.xls");
Response.ContentType = "application/ms-excel";
Response.Charset = "";
EnableViewState = false;
Controls.Add(form);
form.Controls.Add(GridView1);
form.RenderControl(htw);
String strExcel = sw.ToString();
Response.Write(sw.ToString());
[b]Response.End();[/b]
GridView1.AllowSorting = true;
}
}
catch (Exception ex)
{
avisoLabel.Text = ex.Message;
}
}
public override void VerifyRenderingInServerForm(Control control)
{
}Discussão (2)
Carregando comentários...