2008-11-26 40 views
23

Deseo ejecutar una función de javascript después de la devolución de datos de asp.net sin utilizar ajax.Ejecutar la función de javascript después de la devolución de asp.net sin Ajax

he probado el siguiente en mi método aún sin suerte:

Page.ClientScript.RegisterStartupScript(GetType(), "ShowPopup", "showCheckOutPopIn('Livraison',556);"); 
+2

Buena pregunta, he encontrado la RegisterStartupScript a ser un dolor a veces! –

+1

Estoy completamente de acuerdo –

+0

Eso debería funcionar, ¿está escribiendo su script en la página? usa Firebug para Firefox para depurar tu js y pegar algunos puntos de interrupción en él –

Respuesta

46

Usted no debe utilizar la clase ScriptManager, ya que la propiedad está en desuso ... Page.ClientScript

La clase ClientScriptManager es nuevo en ASP.NET 2.0 y reemplaza los métodos de clase de página para administrar scripts que ahora están en desuso.
Reference: MSDN - Page.ClientScript Property

La ventaja de ScriptManager es que funciona con las devoluciones de datos asincrónicas, por lo que si usted está usando AJAX no va a trabajar con el ClientScriptManager.

Su código se vería así:

ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowPopup", "showCheckOutPopIn('Livraison',556);", true); 

Tenga en cuenta también que si está utilizando AJAX y tiene un pedazo de código JavaScript, que desea ejecutar en múltiples devoluciones de datos, entonces usted debe consultar a su UpdatePanel en el primer argumento, por ejemplo:

ScriptManager.RegisterStartupScript(MainUpdatePanel, typeof(string), "ShowPopup", "showCheckOutPopIn('Livraison',556);", true); 
+0

¿cuándo se volvió obsoleto? –

+0

En realidad, es la propiedad Page.ClientScript, que está en desuso y se hizo así con .Net 2.0. Perdón por cualquier malentendido ... – reSPAWNed

+2

Muchas gracias. Me sacaste de 4 horas de dolor para depurar el problema. Este consejo salvó mi día. "Tenga en cuenta también que si está usando AJAX y tiene un fragmento de código javascript, que desea ejecutar en varias devoluciones, entonces debe consultar su UpdatePanel en el primer argumento" – Gopinath

0

no recuerdo improvisada ¿cuál es la sintaxis exacta/de uso de la materia Page.ClientScript ... que se parece debería funcionar de forma directa. Pero si se esfuerza mucho, solo tiene un control de usuario simple que puede habilitar/deshabilitar dinámicamente que escribirá un método de JavaScript en bloques de scripts después de la devolución de datos. Cuando se carga la página, esta secuencia de comandos ejecuta cualquier funcionalidad que desee ejecutar.

por supuesto, la pregunta es, ¿qué es lo que debe hacer este javascript que no podría hacer en el servidor a través de alguna propiedad u otra configuración que se reflejaría en el marcado?

+0

todo se hace a través de css –

8

Solución

que tenía que añadir las etiquetas de secuencia de comandos utilizando la siguiente sobrecarga.

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "script", "alert('Success!');", true); 

Encontrado: Re: execute javascript after postback

0

Tal vez tarde pero puede usar esto

página maestra: Formulario de

ScriptManager.RegisterStartupScript(this, typeof(Page), 
      "ShowRegister", string.Format(@"$(document).ready(function() {{ShowErrorMessage('{0}');}});", message), true);true); 

Web:

Page.ClientScript.RegisterClientScriptBlock(GetType(), "MEssage", 
          "$(document).ready(function() { 
ShowMessage('{0}');", true); 
Cuestiones relacionadas