tipo por parámetros net mvc metodo llamar lista enviar desde controlador asp c# asp.net .net-2.0

c# - por - Ejecutar la función de javascript después de la devolución de datos de asp.net sin Ajax



llamar metodo c# desde ajax (5)

Deseo ejecutar una función de JavaScript después de la devolución de datos de asp.net sin usar ajax.

He intentado lo siguiente en mi método par sin suerte:

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


No recuerdo de improviso cuál es la sintaxis / uso exacto para las cosas de Page.ClientScript ... que parece que 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ías hacer en el servidor a través de alguna propiedad u otra configuración que se refleje en el marcado?


Solución

Necesitaba agregar las etiquetas de script usando la siguiente sobrecarga.

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

Encontrado: Re: execute javascript after postback


Debería usar la clase ScriptManager, ya que la propiedad Page.ClientScript está obsoleta ...

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

La ventaja con ScriptManager es que funciona con devoluciones de datos asincrónicas, por lo que si está utilizando AJAX no funcionará con ClientScriptManager.

Tu 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 fragmento de código javascript, que desea ejecutar en varias devoluciones de datos, entonces debe consultar su UpdatePanel en el primer argumento, por ejemplo:

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



Quizás tarde, pero puedes usar esto

Página principal :

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

Formulario web :

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