Inquiridor
tela splash não para de carregar

Pergunta
-
Eae galera, blz?
Seguinte, tenho no meu sistema um splash que sempre que a página dá um post é apresentada uma tela de "Carregando", fiz de acordo com o que está neste link http://www.devmedia.com.br/asp-net-web-forms-exibindo-uma-mensagem-de-aguarde/8691Porém, tenho um botão onde faço um download de uma planilha excell:
Response.ContentType = "application/xls"; Response.AddHeader("content-disposition", "attachment; filename=Planilha.xls"); Response.TransmitFile(@"Documentos\Planilha.xls"); Response.End();
quando clico nesse botão o download até é feito, porém a tela de "Carregando" continua aparecendo.
Tenho que pressionar F5 para a página voltar ao normal.
Alguém sabe como posso retirar essa tela de splash ao termino do download ?
Estou utilizando Asp.Net com C#
Todas as Respostas
-
Olá, no final do processo de download coloque o seguinte codigo para fechar a splash screen:
Response.AddHeader("content-disposition", "attachment; filename=Planilha.xls"); Response.TransmitFile(@"Documentos\Planilha.xls"); Response.End(); ClientScript.RegisterStartupScript( typeof(Page), "TiraDivAguarde", "if(document.getElementById('divProcessando')) document.getElementById('divProcessando').style.display = 'none';", true);
If the answer was helpful vote
- Sugerido como Resposta Jean LLopes quinta-feira, 14 de janeiro de 2016 16:50
-
a tela de splash continua rodando, tem alguma maneira de eu forçar o postBack ?
Coloquei um Breack Point e verifiquei que o sistema para em Response.End() e não sai dalí.
- Editado processo ao executar comando no servidor quinta-feira, 14 de janeiro de 2016 17:20
-
Então vamos forçar usando a seguinte maneira:
// define as variaveis do client scripts on the page. String csname1 = "PopupScript"; Type cstype = this.GetType(); ClientScriptManager cs = Page.ClientScript; String cstext1 = "document.getElementById('divProcessando').style.display = 'none'"; cs.RegisterStartupScript(cstype, csname1, cstext1, true); //responde para o HTML com o arquivo Response.AddHeader("content-disposition", "attachment; filename=Planilha.xls"); Response.TransmitFile(@"Documentos\Planilha.xls"); Response.End();
Caso ainda apresente algum ´problema no download consulte isso:
stackoverflow.com/questions/16558317/how-to-download-memorystream-to-a-file
If the answer was helpful vote
- Sugerido como Resposta Jean LLopes quinta-feira, 14 de janeiro de 2016 17:44
-
Ola, acredito que o caminho neste caso seja remover via JS mesmo, já que após o response.end o servidor finaliza o retorno.
$(window).bind('beforeunload', function () { if (document.getElementById('divProcessando')) { //FAZ ALGO } });
Faça testes com o beforeunload para tentar remover o div de processamento.
http://stackoverflow.com/questions/8276619/how-can-i-display-an-alert-after-response-end
Rodrigo Reis Ferreira
Microsoft Certified- Sugerido como Resposta Ricardo dos Sntos quinta-feira, 4 de fevereiro de 2016 05:21
-