Bom pessoal, eu venho com este artigo mostrar uma forma que achei para exibir uma mensagem do tipo alert do JavaScript. Só relembrando, quando tentamos dar uma mensagem desta forma:
Response.Write(
"<script>alert(Mensagem aqui! )</script>");Dentro de um UpdatePanel do Ajax ocorre o seguinte erro:
Para conseguir mostrar uma mensagem do tipo alert do JavaScript dentro de um UpdatePanel do Ajax, eu coloquei a mensagem em uma classe que herda a classe Page. Segue os scripts.
/// <summary>
/// encontra o primeiro objeto do tipo passado
/// </summary>
/// <param name="type">tipo à buscar</param>
/// <returns>objeto encontrado ou null caso não encontrado</returns>
private Control FindControlByType(Type type)
{
return FindControlByType(type, this);
}
/// <summary>
/// encontra o primeiro objeto do tipo passado
/// </summary>
/// <param name="type">tipo à buscar</param>
/// <param name="root">objeto à buscar</param>
/// <returns>objeto encontrado ou null caso não encontrado</returns>
private Control FindControlByType(Type type, Control root)
{
if (root.GetType() == type)
return root;
else
{
foreach (Control obj in root.Controls)
{
Control returnObj = FindControlByType(type, obj);
if (returnObj != null)
return returnObj;
}
}
return null;
}
/// <summary>
/// Exibe messagebox - alert / ao navegante
/// </summary>
/// <param name="message">mensagem a ser exibida</param>
public void ShowMessage(string message)
{
Control scriptPanel = FindControlByType(typeof(UpdatePanel)); //no atlas beta 2 só funciona com updatepanel
if (scriptPanel == null) scriptPanel = this;
string javascript = "alert({0});";
message = message.Replace("\\", @"\\").Replace("", @"\").Replace("\"", "\\\"").Replace("\n", @"\n").Replace("\r", @"\r");
ScriptManager.RegisterClientScriptBlock(scriptPanel, scriptPanel.GetType(), "messageBox", string.Format(javascript, message), true);
}
Com estes scripts acima, é só chamar a função ShowMessage passando a mensagem como parâmetro. E como no meu caso era dentro de um UserControl (.ascx), foi só fazer um casting da seguinte forma:
((
BasePage)this.Page).ShowMessage("Aqui vai a mensagem!!.");Bom, eu achei muito útil este script, por isso eu o postei, espero ter ajudado.
[]s