Ejecucion JavaScript dentro de C#

11/09/2008 - 20:16 por Eduardo | Informe spam
Hola a todos,
Desde codigo C# de una página aspx se puede llamar a una funcion de
JavaScript ?

Ejemplo:
if (i==0)
{
var = "Suma";
}
else
{
function Javascript;
}

Gracias anticipadas

Eduardo

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
11/09/2008 - 20:34 | Informe spam
"Eduardo" wrote in message
news:
Desde codigo C# de una página aspx se puede llamar a una funcion de
JavaScript ?

Ejemplo:
if (i==0)
{
var = "Suma";
}
else
{
function Javascript;
}



Bueno, no exactamente. Desde el C# del aspx puedes transmitir al
navegador el javascript para que éste lo ejecute cuando la página se sirva
al cliente:

...
else
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Prueba",
"funcionJavascript();", true);
}
Respuesta Responder a este mensaje
#2 Eduardo
12/09/2008 - 00:26 | Informe spam
Alberto Poblacion formulated on Thursday :
"Eduardo" wrote in message
news:
Desde codigo C# de una página aspx se puede llamar a una funcion de
JavaScript ?

Ejemplo:
if (i==0)
{
var = "Suma";
}
else
{
function Javascript;
}



Bueno, no exactamente. Desde el C# del aspx puedes transmitir al navegador
el javascript para que éste lo ejecute cuando la página se sirva al cliente:

...
else
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Prueba",
"funcionJavascript();", true);
}



Gracias Alberto,

En una pagina ASPX si me funciona correctamente tal y como tu me has
indicado. Pero si lo quiero ejecutar dentro de un codigo de User
Control
no lo consigo, voy a intentar de explicarme mejor
Tengo un User control con un boton

Cuando se pulsa el boton
verifico si una variable tiene un valor si no lo tiene necesito
ejecutar la funcion JavaScript
protected void Button_Click(object sender, EventArgs e)
{
if (i==0)
{
var = "Suma";
}
else
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
"Prueba",




"funcionJavascript();", true);
}




}
Este control está en una pagina default.aspx

Gracias por tu ayuda

Eduardo
Respuesta Responder a este mensaje
#3 Alberto Poblacion
12/09/2008 - 10:15 | Informe spam
"Eduardo" wrote in message
news:
En una pagina ASPX si me funciona correctamente tal y como tu me has
indicado. Pero si lo quiero ejecutar dentro de un codigo de User Control
no lo consigo



Me imagino que el único problema que tienes dentro del User Control es
que no tienes acceso a la propiedad "Page". Una forma de extraerla es esta:

Page PaginaActual = (Page)HttpContext.Current.Handler;

Y luego ya puedes hacer
PaginaActual.ClientScript.RegisterClientScriptBlock(...);

Otra alternativa interesante, que puedes usar en caso de que el proyecto
tenga una Referencia a la DLL de AJAX (System.Web.Extensions.dll) es usar
los métodos estáticos de la clase ScriptManager para registrar el javascript
cliente. Esto tiene la ventaja de que funciona en todas las páginas, tanto
si usan AJAX como si no (mientras que el Page.ClientScript.Register... solo
funciona si NO usas AJAX).

ScriptManager.RegisterClientScriptBlock (this, this.GetType(), "Prueba",
"funcionJavascript();", true);
Respuesta Responder a este mensaje
#4 Eduardo
12/09/2008 - 19:46 | Informe spam
Alberto Poblacion presented the following explanation :
"Eduardo" wrote in message
news:
En una pagina ASPX si me funciona correctamente tal y como tu me has
indicado. Pero si lo quiero ejecutar dentro de un codigo de User Control no
lo consigo



Me imagino que el único problema que tienes dentro del User Control es
que no tienes acceso a la propiedad "Page". Una forma de extraerla es esta:

Page PaginaActual = (Page)HttpContext.Current.Handler;

Y luego ya puedes hacer
PaginaActual.ClientScript.RegisterClientScriptBlock(...);

Otra alternativa interesante, que puedes usar en caso de que el proyecto
tenga una Referencia a la DLL de AJAX (System.Web.Extensions.dll) es usar los
métodos estáticos de la clase ScriptManager para registrar el javascript
cliente. Esto tiene la ventaja de que funciona en todas las páginas, tanto si
usan AJAX como si no (mientras que el Page.ClientScript.Register... solo
funciona si NO usas AJAX).

ScriptManager.RegisterClientScriptBlock (this, this.GetType(), "Prueba",
"funcionJavascript();", true);



Gracias Antonio,
Tenias tú razon el problema venia por el uso de Ajax
ha cambiado a ScriptManager.etc y funciona correctamente

Saludos y repito gracias por tu ayuda

Eduardo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida