Acabei de passar algumas horas batendo minha cabeça contra uma parede tentando fazer o ASP.NET executar uma função JavaScript cada vez que um UpdatePanel é atualizado. Simplesmente colocar o script dentro das tags ContentTemplate não funciona. Em vez disso, para que o JavaScript seja executado no PostBack, você precisa usar ScriptManager.RegisterStartupScript para registrar o script a ser executado.
```c#
protected void Page_Load(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(
upPanel,
this.GetType(),
"MyAction",
"doMyAction();",
true);
}
```
RegisterStartupScript é um método estático na classe ScriptManager. Você não precisa ter um ScriptManager real no escopo para chamar essa função (por exemplo, você pode estar codificando em um UserControl e ter o ScriptManager na página).
O primeiro parâmetro é o UpdatePanel que você deseja associar ao script. O segundo parâmetro é um parâmetro de tipo, usaremos apenas o tipo do objeto atual para isso. Agora chegamos às partes interessantes. O terceiro parâmetro, “MyAction”, é uma chave para identificar o script, permitindo que você faça referência ou atualize-o no futuro, se desejar. Em seguida, temos o próprio script. Isso pode ser um bloco de JavaScript embutido, mas eu prefiro envolver tudo o que quero que aconteça em uma função e chamá-lo. O parâmetro final é um sinalizador para indicar se o ScriptManager deve envolver seu código em tags de script. Você pode fazer isso manualmente, se quiser, mas prefiro definir esse sinalizador como verdadeiro e deixar outra pessoa se preocupar com isso.
O ASP.NET produzirá o seguinte código na parte inferior da página e o executará no PostBack. Desde que você tenha definido a função doMyAction () em algum lugar, tudo deve funcionar conforme o esperado.