Muchas veces me he encontrado con la necesidad de insertar código javascript dinámicamente, por ejemplo, añadiendo eventos a algunos controles de mi página aspx. Para hacerlo siempre había utilizado el método Page.ClientScript.RegisterStartupScript(...). Funcionaba correctamente hasta que el script hacía referencia a un control que se encontraba dentro de un UpdatePanel. El código javascript no se ejecutaba.
Si te ocurre esto, la solución es substituir la llamada Page.ClientScript.RegisterStartupScript(...) por ScriptManager.RegisterStartupScript(...) y todo funcionará correctamente.