Busca

quinta-feira, 11 de agosto de 2011

Usando um ShowMessage no ASP.NET

Fala galera, hoje eu precisava de usar várias vezes o ClientScript.RegisterStartupScript e eu estava com preguiça de ficar fazendo isso toda hora.

Então resolvi criar uma função na minha classe Util para que ficasse mais fácil a chamada desse método.

Então fiz uma função Util.ShowMessage(string mensagem) para economizar dedo. hahaha

Porém eu me deparei com um impecílio, o Page, que é a classe pai do ClientScript, não está acessível de um método estático em uma classe separada da sua página aspx.

Então para isso devemos recuperar a instância atual da Page para podermos registrar um script.

Para isso faça o seguinte:


Page p = HttpContext.Current.Handler as Page;


O HttpContext.Handler é a tratativa da página sendo executada no momento. Então você pode recuperá-la convertendo-a para Page.

Daí é só fazer a sua função!

A minha ficou assim:



public static void ShowMessage(string mensagem)
{
    using (Page p = HttpContext.Current.Handler as Page)
    {
        Random r = new Random();
        string script = String.Format("alert('{0}');", mensagem);
        if (!p.ClientScript.IsStartupScriptRegistered(r.ToString()))
        {
             p.ClientScript.RegisterStartupScript(typeof(HttpContext), r.Next().ToString(), script, true);
        }
    }
}



Espero que tenham gostado!

Até qualquer hora!

2 comentários: