El ejemplo de código específico que está describiendo no funciona con post-backs parciales, ya que ClientScript.RegisterStartupScript()
escribe JS en la página durante la fase de construcción de salida del ciclo de vida de la solicitud; mientras que una devolución de datos parcial solo actualiza una porción seleccionada de la página a través de JavaScript (aunque el marcado de toda la página, incluido el script de inicio, se genera en el servidor).
para imitar lo que usted está describiendo, se debe incluir un control literal dentro de su UpdatePanel, y durante la devolución parcial establezca la propiedad Text del panel de contenido a la secuencia de comandos que desea ejecutar:
myLiteral.Text = "<script type=\"JavaScript\">doStuff();</script>";
OMI, de una manera más adecuada es utilizar el client-side API for async postbacks registrar un controlador de eventos para funcionar cuando la devolución de datos completa:
function endRequestHandler(sender, args) {
doStuff();
}
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
Si necesita pasar la información que se genera durante la devolución de datos en el controlador, puede pasar que a través de campos ocultos y tomar eso desde el DOM en su controlador del lado del cliente.
@Rex Estaba planeando usar campos ocultos y un controlador de eventos que siempre archiva, pero estaba saltando había un mecanismo similar al que describí. Por lo que he encontrado hasta ahora, esta es la única opción. – Mark
@Rex He escrito cómo usé este método para lograr el mismo objetivo. http://fooberry.com/2009/05/25/running-specific-javascript-after-partial-postback/ – Mark