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í.