PDA

View Full Version : [ASP.NET] WaitDialog per invio file


astorcas
22-06-2010, 16:51
Ciao, avrei bisogno di un consiglio.
Ho una pagina che al suo caricamento genera un file e lo sputa nella response e fin qui tutto ok. Vorrei che nel mezzo ci sia un bel dialogo d'attesa che sparisce una volta che appare la finestra del browser per il download.
So che sembra banale ma ci sto sbattendo la testa da un po' troppo tempo :fagiano:
Avete qualche idea?

Grazie!



page.Response.AppendHeader("content-disposition", "attachment;filename=nomefile");
page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
page.Response.ContentType = "application/vnd.xlsx";

using (MemoryStream memStream = new MemoryStream()){
//riempio lo stream

memStream.WriteTo(page.Response.OutputStream);
}


//A QUESTO PUNTO VORREI NASCONDERE LA FINESTRA DI DIALOGO D'ATTESA

astorcas
23-06-2010, 09:41
mmm... inizio a pensare che la cosa sia impossibile.... per come è stato concepito l'HTTP credo non si possano fare le due cose insieme :(

sneeze
09-07-2010, 19:42
non credo tu possa fare le due cose assieme perchè in sostanza stai cambiando l'output della pagina in quel modo, fossi in te mi comporterei in altro modo, per esempio potresti chiamare una pagine con una formattina di attesa e nel code behind lanci la creazione del tuo file, una volta creato lo salvi lato server, oppure se non è troppo grosso ti salvi l'array di byte nella session. A quel punto chiami la tua paginetta che riprende l'array di byte e lo sputa nell'output immediatamente oppure fai un response redirect direttamente al file nel caso tu te lo sia salvato lato server.

Altrimenti ancora (soluzione migliore probabilmente) potresti creare una paginetta con al suo interno un iFrame. nell'iFrame gli fai preparare il file e poi lo sputi nell'output mentra nel form principale fai la tua paginetta di attesa.