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.
ClientScript.RegisterClientScriptBlock( type, key, script, addScriptTags);
Ex.:
Page.ClientScript.RegisterStartupScript( Page.GetType(), "Alert", "alert('Olá Mundo')", true);
Registrando o script com AJAX com o ScriptManager
ScriptManager.RegisterStartupScript( control, type, key, script, addScriptTags);
Ex.:
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