Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ripper

Mensagem de Carregamento

Recommended Posts

Bom dia pessoal,

 

Estou com um problema e queria saber se vocês poderiam me ajudar.

 

O meu problema é : preciso exibir uma mensagem de carregamento enquanto a página(asp.net) é carregada e fazer com que essa mensagem suma depois que a página estiver carregada, isso sem usar ajax. Como eu faço isso ?

 

Agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar threads, você redireciona para uma página de carregamento e abre uma thread que vai executar o carregamento da página que você quer carregar. Então na página de carregamento você executa uma função que verifica se a thread já terminou ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

KhaosDoctor obrigado pela resposta, mas será que você poderia exemplificar com código ( é que sou meio novo em programação .net) ?

 

Agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você também pode usar jQuery para fazer isso, bem como flash. E olha este tutorial.

  • Crie um novo website no Visual Studio. tipo TesteMSGAguarde

img1fi1.jpg

  • Crie uma pasta chamada JS dentro do seu WebSite e nessa pasta adicione um novo arquivo JScript chamado MSGAguarde.js.

img2ns6.jpg

 

Adicione o código:

 

function avisoAguarde()
{
if(document.getElementById('divProcessando'))


{
document.getElementById('divProcessando').style.display='';
return; } oDiv = document.createElement("div"); with (oDiv) { id = "divProcessando"; } document.body.appendChild(oDiv); }

O código acima verifica se o div já existe, caso sim, o torna visível, caso não, cria um novo.

  • Agora crie um arquivo de classe no seu WebSite chamado BaseWebUi.cs (se seu site for em C#)

img3op5.jpg

 

A classe BaseWebUI ficará assim:

 

public class BaseWebUi : System.Web.UI.Page { protected override void OnInit(EventArgs e) { //se o div de Aguarde ainda estiver mostrando ele tira
ScriptManager src = ScriptManager.GetCurrent(Page);
if (src != null)
ScriptManager.RegisterClientScriptBlock(this, typeof(void), "TiraDivAguarde",
"if(document.getElementById('divProcessando'))
document.getElementById('divProcessando').style.display = 'none';", true);
else
ClientScript.RegisterStartupScript(typeof(Page), "TiraDivAguarde",
"if(document.getElementById('divProcessando'))
document.getElementById('divProcessando').style.display = 'none';", true);
ClientScript.RegisterOnSubmitStatement(this.GetType(), "zerarfiltro", "if(document.getElementById('divProcessando') && document.getElementById('divProcessando').style.display!='none')return false;"); ClientScript.RegisterOnSubmitStatement(this.GetType(), "Aguarde", "if (typeof(ValidatorOnSubmit) == 'function' && ValidatorOnSubmit() == false) return false; avisoAguarde();"); base.OnInit(e); } }

 

A classe herda da System.Web.UI.Page e sobrescreve o método OnInit (que é executado toda vez que a página é carregada). O método onInit chama a função javascript avisoAguarde() e impede o post se o divProcessando estiver na tela.

  • Agora é só referenciar o arquivo JS e adaptar o BaseWebUi à sua página.
    Abra o arquivo Default.aspx.cs (se seu site for em C#) e troque a herança de System.Web.Ui.Page para BaseWebUi

img4ck2.jpg

 

Abra o arquio Default.aspx e entre as tags Head coloque a referência ao arquivo MSGAguarde.js

 

img5hd2.jpg

  • Agora vamos dar um visual para o DIV como Theme. Crie um Asp.Net Folder to tipo Theme, chamado MSG

img6wn6.jpg

 

Adicione uma pasta chamada Imagens em seu Theme MSG e nessa mesma pasta, copie um GIF animado com uma mensagem de aguarde de sua preferência.Adicione um novo arquivo CSS em seu Theme MSG

 

img8lw3.jpg

 

E escreva um Theme para o DIV que aparecerá na frente da tela a cada post. No exemplo eu fiz o seguinte css:

#divProcessando { background: url(imagens/carregandopagina.gif) no-repeat center; position:fixed; z-index:99; width:100%; height:100%; top:0; left:0; }

 

Adicione o Theme MSG para toda a sua aplicação. Abra o arquivo Web.Config e na tag PAGE adicione a propriedade theme=”MSG”

img10ys8.jpg

Pronto! Agora todo post que a sua página fizer irá aparecer a imagem de Aguarde.

 

 

Para testar nossa aplicação crie um botão do asp.net na Default.aspx e no evendo Click, digite o seguinte código:

System.Threading.Thread.Sleep(1000);

O código serve para quando o evento Click do botão for acionado, o sistema espera um segundo, para efeito de emular um processamento mais longo.

Execute a página e clique no botão e a seguinte mensagem aparecerá para avisar que o sistema está processando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.