Voy a explicarte un ejemplo con un par de posibilidades para llamar a un método JavaScript desde tu código de servidor C#. La clave está en el método "RegisterStartupScript" que nos permite registrar un código JavaScript desde el código de C# y que éste sea interpretado por el navegador. Te puedes descargar el código de ejemplo aquí.
La primera posibilidad es que quieras invocar un método JavaScript desde el Page_Load de tu página ASPX, para ello puedes hacer lo siguiente:
///<summary> /// Evento de carga de la página ///</summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) {
//Se llama a un javascript cuando la página carga
string mensaje = "Este mensaje se genera desde c#";
ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript:mostrarMensaje('" + mensaje + "');</script>");
} |
La segunda posibilidad es que quieras ejecutar un método JavaScript desde el evento de un control de tu página ASPX:
///<summary> ///El botón va a ejecutar un código javascript ///</summary> ///<param name="sender"></param> ///<param name="e"></param> protected void btnClick_Click(object sender, EventArgs e) {
//Se genera el código javascript que se quiere ejecutar
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(@"<script language='javascript'>");
sb.Append(@"var lbl = document.getElementById('lblMensaje');");
sb.Append(@"lbl.style.color='red';");
sb.Append(@"alert(lbl.innerText);");
sb.Append(@"</script>");
if (!ClientScript.IsStartupScriptRegistered("JSScript"))
{
ClientScript.RegisterStartupScript(this.GetType(), "JSScript", sb.ToString());
}
} |
Espero que te sea de utilidad y recuerda que puedes descarte el código aquí.
Buena aportación. Solo cabe señalar que para hacer mas funcional y atractivo un artículo hay que relacionarlo con un problema práctico.
ReplyDeleteSaludos!!
Tomo nota!
ReplyDeleteMuy buena la info la verdad me solucionaste la vida, ya que no tenia idea de como llamar a una funcion javascript desde asp.net, y lo mejor es que lo posteaste en C# lo cual le da mas valor a la info ja ja ja. Saludos!
ReplyDeleteTu abuela.....
ReplyDeleteexcelente, lo necesitaba..thanks
ReplyDeletemuy buena info... muy al grano!
ReplyDeleteNo me hace nada, estoy tratando de limpiar unos controles después que doy click en un boton que lo que hace es adicionar los valores de esos campos en un gridview, que puede estar pasando ?
ReplyDeleteEsta muy bien el ejemplo, pero el caso que tengo es,busco un registro en mi DB, si existe, debo enviarle un msg al cliente que ya existe y el cliente toma la decision YES o NOT, es como el confirmar del delete,pero en este caso primero hay que buscar el dato en la DB para luego dejarlo pasar o NO , VB.NET esto es a nivel WEB
ReplyDeletepura mierda esta vaina no hace un culo
ReplyDeleteexcelente ejemplo me sacaste de un apuro.
ReplyDeleteNo funciona en Firefox estimado, Firefox no ejecuta javascript hasta terminar el código de servidor (CS). En Opera, Chrome e IE8 funciona. Alguna solucion parche para Firefox?
ReplyDeletegracias!!
ReplyDeleteTengo una función javascript que le paso dos parámetros y me devuelve un valor, por ejemplo: suma(a,b). Devuelve: a+b
ReplyDeleteLo que pretendo en integrar la llamada de esa función en un bucle, poderle pasar los dos parámetros provenientes de variables .net y que me devuelva el resultado en una variable de .net
Do Until True
dim Total as integer
--> suma(a,b)
Loop
Gracias por vuestra ayuda.
Este comentario ha sido eliminado por el autor.
ReplyDelete