none
error al exportar a excel RRS feed

  • Pregunta

  • hola :

    tengo este codigo que lo invoco desde un boton de exportacion ( en el evento click )

     public void ExportToExcel(string nameReport, GridView wControl)
            {

                StringBuilder sb = new StringBuilder();
                StringWriter sw = new StringWriter(sb);
                HtmlTextWriter htw = new HtmlTextWriter(sw);

                Page page = new Page();
                HtmlForm form = new HtmlForm();

                wControl.EnableViewState = false;

                // Deshabilitar la validación de eventos, sólo asp.net 2
                page.EnableEventValidation = false;

                // Realiza las inicializaciones de la instancia de la clase Page que requieran los diseñadores RAD.
                page.DesignerInitialize();

                page.Controls.Add(form);
                form.Controls.Add(wControl);

                page.RenderControl(htw);

                Response.Clear();
                Response.Buffer = true;
                Response.ContentType = "application/vnd.ms-excel";
                Response.AddHeader("Content-Disposition", "attachment;filename=data.xls");
                Response.Charset = "UTF-8";
                Response.ContentEncoding = Encoding.Default;
                Response.Write(sb.ToString());
                Response.End();

             
     
            }  

    el tema es que cuando lo invoco desde el boton de exportacion :

    protected void Button1_Click1(object sender, EventArgs e)
    {
        loFunciones.ExportToExcel("planillaexcel", GridView1);
    }
       

    me sale un error en  la linea  que dice      Response.Clear();

    "el codigo de usuario no controlo hhttpexeption"

    Respuesta no disponible en este contexto.

    necesitaria saber la falla en el codigo .gracias


    eduardo

    sábado, 2 de agosto de 2014 21:58

Respuestas

  • Hola buenas... puedes indicarnos todo el StackTrace de la excepción? Así se puede rastrear por dónde va pasando tu código hasta la producción de dicha excepción. 

    gracias


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    • Marcado como respuesta Eduardo Rohr miércoles, 6 de agosto de 2014 1:59
    martes, 5 de agosto de 2014 8:06
    Moderador
  • Como ya comentan por aquí sería interesante contar con todo el StackTrace.

    Intenta de todas maneras utilizar HttpContext.Current.Response.Clear(); en lugar de Response.Clear().

    Un saludo.


    Si se solucionó tu consulta, no olvides marcarla como respondida. Si te ayudó, vótala como útil.

    • Marcado como respuesta Eduardo Rohr miércoles, 6 de agosto de 2014 1:59
    martes, 5 de agosto de 2014 11:33
  • gracias amigos ! lo solucione poniendo HttpContext.Current.Response.Clear(); en lugar de Response.Clear().. es increible lo que se aprende !!!

    eduardo

    • Marcado como respuesta Eduardo Rohr miércoles, 6 de agosto de 2014 2:00
    miércoles, 6 de agosto de 2014 2:00

Todas las respuestas

  • hola

    si en el codigo defines un try..catch para poder capturar el mensaje y ver la descripcion del mismo

    porque solo obtener un mensaje que diga HttpException no ayuda, deberias ver si se puede obtener el message del error

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 3 de agosto de 2014 0:16
  • gracias por responder :

    puse el try catch . encerré todo el codigo  posteado anteriormente en el try

    y en el catch puse:

     catch (Exception exp)
                {
                    Console.WriteLine("{0} Exception caught.", exp.ToString());

               }

    hice el debbug con f11 y en la linea que dice :   Response.Clear(); , salta al catch y el mensaje es :

    cuando inspecciono el objeto EXp , el mensaje es "respuesta no disponible en este contexto " ,. no se si meesat faltando algun using , creo que no porque sino me lo propondria agregar . la verdad que no se que puede ser .  gracias

    y cuando


    eduardo

    martes, 5 de agosto de 2014 0:23
  • Hola buenas... puedes indicarnos todo el StackTrace de la excepción? Así se puede rastrear por dónde va pasando tu código hasta la producción de dicha excepción. 

    gracias


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    • Marcado como respuesta Eduardo Rohr miércoles, 6 de agosto de 2014 1:59
    martes, 5 de agosto de 2014 8:06
    Moderador
  • Como ya comentan por aquí sería interesante contar con todo el StackTrace.

    Intenta de todas maneras utilizar HttpContext.Current.Response.Clear(); en lugar de Response.Clear().

    Un saludo.


    Si se solucionó tu consulta, no olvides marcarla como respondida. Si te ayudó, vótala como útil.

    • Marcado como respuesta Eduardo Rohr miércoles, 6 de agosto de 2014 1:59
    martes, 5 de agosto de 2014 11:33
  • Hola,

    También podrias tomar algun otro ejemplo como base. Checa el siguiente ejemplo sobre como exportar un gridview.

    Exportar gridview



    Jason Ulloa
    Mi Blog San José, Costa Rica

    martes, 5 de agosto de 2014 12:37
  • gracias amigos ! lo solucione poniendo HttpContext.Current.Response.Clear(); en lugar de Response.Clear().. es increible lo que se aprende !!!

    eduardo

    • Marcado como respuesta Eduardo Rohr miércoles, 6 de agosto de 2014 2:00
    miércoles, 6 de agosto de 2014 2:00