En ocasiones es necesario e importante ejecutar código JavaScript o llamar funciones de JavaScript encontradas en la pagina ASP.NET. Para ellos existen métodos que permiten hacer esta tarea, a continuación enuncio varios ejemplos para llamar funciones de JavaScript desde CodeBehind C#.
El primer ejemplo es para llamar una función "MostrarOcultarDiv();" el cual como su nombre lo indica, permite visualizar y ocultar un elemento DIV de HTML con ID "divAgregar".
////////////////// CODIGO JAVASCRIPT /////////////////////
function MostrarOcultarDiv()
{
var div = document.getElementById("divAgregar");
if (div.style.display == "none")
div.style.display = "block";
else
div.style.display = "none";
}
////////////////// CODIGO C# (CodeBehind) /////////////////////
protected void BtnGuardar_Click(object sender, EventArgs e)
{
...
//Llamar funcion MostrarOcultarDiv() desde codigo C#
// Ambas lineas de código funcionan.
ClientScript.RegisterStartupScript(this.GetType(), "myScript", "MostrarOcultarDiv();", true);
ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript:MostrarOcultarDiv();</script>");
}
El segundo ejemplo ejecuta una instrucción JavaScript "Alert" que muestra un mensaje luego de guardar unos datos.
////////////////// CODIGO C# (CodeBehind) /////////////////////
protected void BtnGuardar_Click(object sender, EventArgs e)
{
...
//Ejecutar código 'Alert' JavaScript desde C#
ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alert('Se guardaron los datos satisfactoriamente');</script>");
}
hola una consulta para llamar a la function MostrarOcultarDiv(), esta la declaraste en tu Default.apx o donde y de que manera Muchas gracias.
ResponderEliminarSaludos,
EliminarLa función javaScript MostrarOcultarDiv() se encuentra en la pagina aspx, por ejemplo: Default.aspx, y el llamado desde el codigo fuente, se hace desde el codebehind de esa misma pagina, es decir, Default.aspx.cs
¿Cómo se ejecutaría esta función desde el evento clic del guardar pasándole los dos valores, y guardando el resultado en una variable .net?
ResponderEliminarfunction suma(a, b) {
return a * b;
}
Gracias.
Saludos,
EliminarLa verdad le comento que nunca he realizado ese tipo de llamado, pero una respuesta o posible opción, es que esa multiplicación o asignación la haga sobre un control ASP, p.e. el Text de un Label, y luego desde el codigo C#, tomas ese valor. Aunque eso tampoco lo he realizado, es la unica salida que le puedo ver.
mi duda es porque no me funciona la solucion ya declare las funciones js en mi aspx y desde el codebehind mando llamar a la funcion y nones
ResponderEliminarTocaria ver el codigo para ver si existe algun error.
EliminarEste comentario ha sido eliminado por el autor.
EliminarLo que puedes probar es colocar tu methodo javascript antes que cualquier otro methodo, ya que yo tuve ese problema pero coloque el casi casi al inicio de la pagina, bajo el tag del body y me funciono!!!
EliminarSaludos.
Buen dia
ResponderEliminarCOmo se puede ejecutar un script desde el Behind de una pagina de tipo ascx ?
Gracias
Saludos,
EliminarSe ejecuta de igual manera, en los archivos .ascx y ascx.cs
Este comentario ha sido eliminado por un administrador del blog.
ResponderEliminar