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. hahahaPoré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!
Legal Murilo, essa rotina ajuda a economizar muitas linhas :)
ResponderExcluir^.^
ResponderExcluir