Mostrar um alert personalizado dentro do UpdatePanel !

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Quem nunca precisou mostrar uma mensagem do tipo alert do JavaScript e não conseguia por estar usando o UpdatePanel do Ajax? Nesta dica eu mostro como mostrar uma mensagem personalizada com uma classe que herda a classe Page.

        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:

mensagemerroAjax.JPG

 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

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?