none
Response End RRS feed

  • Pregunta

  • Buenas tardes,

    Tengo un problema y es que tengo una funcion que llama a otra funcion. Esta segunda función hace lo siguiente:

                'Creo el response
                Dim response As HttpResponse = HttpContext.Current.Response
    
                'Preparamos el response
                response.Clear()
                response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                response.AddHeader("content-disposition", "attachment;filename=" & NombreFichero & ".xlsx)")
    
                'Mostramos el response por Pantalla
                Using StringEnMemoria As New MemoryStream()
                    LibroExcel.SaveAs(StringEnMemoria)
                    StringEnMemoria.WriteTo(response.OutputStream)
                    StringEnMemoria.Close()
                End Using
    
                response.[End]()

    El problema que tengo es que cuando se hace el response.[End]() el programa se queda colgado, es decir, no sigue ejecutandose el codigo posterior sino que aqui se corta, lo que me crea un problema ya que yo necesito ejecutar cierto codigo despues de mostrar por pantalla el cuandro de dialogo de descarga del document0. ¿Como puedo hacer para ejecutar el codigo siguiente?

    Gracias

    • Cambiado Enrique M. Montejo sábado, 24 de marzo de 2012 17:35 desarrollo web (De:Lenguaje VB.NET)
    miércoles, 21 de marzo de 2012 12:49

Todas las respuestas

  • no has evaluado si el problema sea con el Stream que asignas ?

    ese LibroExcel que seria ?

    porque si tienes el archivo fisico podrias usar el

    Response.WriteFile()

    para enviar el archivo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 21 de marzo de 2012 13:04
  • Hola Leandro,

    LibroExcel es un objeto de una clase que tengo definida. Respecto a la otra pregunta , no, no tengo el archivo fisicamente, te muestro todo el codigo:

    'Creamos el libro
                Dim LibroExcel = New XLWorkbook()
    
                'Cremos la hoja y la añadimos al libro con el titulo y los resultados
                Dim Hoja As IXLWorksheet = LibroExcel.Worksheets.Add(NombreHoja)
                Hoja.Cell(1, 1).InsertTable(results)
                Hoja.ShowGridLines = False
    
                'Creo el response
                Dim response As HttpResponse = HttpContext.Current.Response
    
                'Preparamos el response
                response.Clear()
                response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                response.AddHeader("content-disposition", "attachment;filename=" & NombreFichero & ".xlsx)")
    
                'Mostramos el response por Pantalla
                Using StringEnMemoria As New MemoryStream()
                    LibroExcel.SaveAs(StringEnMemoria)
                    StringEnMemoria.WriteTo(response.OutputStream)
                    StringEnMemoria.Close()
                End Using
    
                response.[End]()

    miércoles, 21 de marzo de 2012 14:14
  • y solo para probar que pasa si grabas en un archivo el excel y luego lo envias con

    Response.WriteFile()

    solo para validar si ese camino funciona, lo cual indicaria que lo del WriteTo() al stream es donde esta el problema

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 21 de marzo de 2012 15:05
  • El tema es viejisimo pero aquí esta el porque sucede esto 

    http://support.microsoft.com/kb/312629/es

    Saludos Cordiales

    • Propuesto como respuesta webJoseModerator viernes, 14 de noviembre de 2014 4:41
    viernes, 14 de noviembre de 2014 0:15