Quem já desenvolveu para Windows Forms com .NET, provavelmente já utilizou a classe MessageBox para exibir mensagens de diálogo ao usuário. Ex:
MessageBox.Show("Ocorreu um erro catastrófico, o programa será fechado.");
Porém, o conceito da plataforma ASP.NET é totalmente diferente, e nela essa classe não existe.
Então como exibir mensagens para o usuário no ASP.NET?
Por algum tempo utilizei:
ScriptManager.RegisterClientScriptBlock(Page, GetType(), "mensagem", "alert('Ocorreu um erro catastrófico durante a excluso do item.')", true);
Que nada mais é do que registrar um bloco de javascript na página, e nesse bloco chamamos a função alert passando a mensagem desejada como parâmetro.
A procura de uma solução que me agradasse mais, resolvi pesquisar por algo semelhante à classe MessageBox para ASP.NET, e encontrei algumas implementações que recebem a mensagem a ser exibida e adicionam na página os códigos necessários.
Ex de utilização:
MessageBox.show("MENSAGEM");
Aqui está a classe MessageBox que exibe mensagens utilizando a função alert. Para utilizar coloque o arquivo MessageBox.cs dentro da pasta App_Code.
Entretanto, a janela exibida pela função alert é de responsabilidade do browser, pode ter diversas formas e cores, geralmente são irritantes e não combinam com a identidade visual do sistema.
Janela de alerta do Opera 9.51
Resolvi então modificar a classe MessageBox para exibir mensagens sem a função alert.
Integrei a classe ao Framework ExtJS, adicionei também suporte aos ícones que eu desejava nas mensagens, e vejam que resultado legal:
Modos de utilização:
MessageBox.Show("Mensagem1", MessageBox.MessageType.Success);
MessageBox.Show("Mensagem2", MessageBox.MessageType.Warning);
MessageBox.Show("Mensagem3", MessageBox.MessageType.Info);
MessageBox.Show("Mensagem4", MessageBox.MessageType.Error);
Baixe
aqui um projeto de exemplo, com a classe MessageBox e os arquivos do ExtJS necessários.
Manter a exibição de mensagens encapsulada na classe MessageBox simplifica o código e permite alterar facilmente o modo como todas as mensagens do projeto aparecem.
Agora é só modificar para atender melhor às suas necessidades.