Se você já utilizou os componentes AJAX da Microsoft, já deve ter tido esse mesmo problema. Quando você utiliza o UpdatePanel por exemplo, como tudo na página é atualizado de forma dinâmica (sem refresh), o ClientScript perde a sua funcionalidade pois depende de um PostBack inteiro da página para que assim execute os scripts. Pesquisando um pouco, encontrei a solução: a classe ScriptManager. A forma de utilização da classe é praticamente a mesma no ClientScript, veja:
Registrando um script sem o AJAX com o ClientScript.
1 2 | ClientScript.RegisterClientScriptBlock( type, key, script, addScriptTags); |
Ex.:
1 2 | Page.ClientScript.RegisterStartupScript( Page.GetType(), "Alert", "alert('Olá Mundo')", true); |
Registrando o script com AJAX com o ScriptManager
1 2 | ScriptManager.RegisterStartupScript( control, type, key, script, addScriptTags); |
Ex.:
1 2 | ScriptManager.RegisterStartupScript( Page, Page.GetType(), "Alert", "alert('Olá Mundo')", true); |
A classe ScriptManager está no namespace System.Web.UI, mas é preciso acrescentar uma referência à dll System.Web.Extensions.dll

Pingback: Alert no asp.net()