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.
Sensacional!!
ResponderExcluirParabéns..
Muito Bom.!!!
ResponderExcluirMuito bom cara! Está de parabéns!
ResponderExcluirPodia ser jQuery pra atender a biblioteca do meu projeto, mas quem sabe eu não dê uma mechida lá depois e adicione suporte ao jQuery? Qualquer coisa te aviso! Valeu!!!
Amigão, você testou no IE9? Funciona?
ResponderExcluirOtimoo !! Parabenss
ResponderExcluirCaro lucas,
ResponderExcluirEm primeiro lugar, parabéns pela implementação, ótimo conteúdo!! Mas fica uma pergunta que ajudaria ainda mais melhorar a sua idéia. Como que ficaria implementar o confirm como você fez com o alert???
sds,
Clóvis Amaral
clovis.amaral@hotmail.com