Foros del Web » Programando para Internet » ASPX (.net) »

No me funciona ClientScript.RegisterStartupScript

Estas en el tema de No me funciona ClientScript.RegisterStartupScript en el foro de ASPX (.net) en Foros del Web. Hola: Estoy tratando de ejecutar una funcion javascript desde vb.net. Según leo se hace con ClientScript.RegisterStartupScript y también podría con ejecutarla com response.write, pero no ...
  #1 (permalink)  
Antiguo 05/03/2009, 16:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 80
Antigüedad: 15 años, 6 meses
Puntos: 1
No me funciona ClientScript.RegisterStartupScript

Hola:

Estoy tratando de ejecutar una funcion javascript desde vb.net. Según leo se hace con ClientScript.RegisterStartupScript y también podría con ejecutarla com response.write, pero no me funciona de ninguna de las dos maneras.

En este caso sería tratar de responder a un evento de cambio de modo en un formview, pero no hay manera de que se genere la respuesta. Pongo el ejemplo:

Código:
Protected Sub FormView1_ModeChanged(ByVal sender As Object, ByVal e As System.EventArgs)

	ClientScript.RegisterStartupScript(Me.GetType(), "ClientScript", "alert('el modo se ha cambiado')", True)

End Sub
Por favor si alguien me puede echar una mano se lo agradecería.

Saludos.

Eduardo
  #2 (permalink)  
Antiguo 06/03/2009, 02:13
Avatar de kennyhp  
Fecha de Ingreso: julio-2006
Mensajes: 370
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: No me funciona ClientScript.RegisterStartupScript

Prueba así:

Código:
Protected Sub FormView1_ModeChanged(ByVal sender As Object, ByVal e As System.EventArgs)

	ClientScript.RegisterStartupScript(Me.GetType(), "ClientScript", "<script type=""text/javascript"">alert('el modo se ha cambiado')</script>", True)

End Sub
  #3 (permalink)  
Antiguo 06/03/2009, 02:41
 
Fecha de Ingreso: octubre-2008
Mensajes: 80
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: No me funciona ClientScript.RegisterStartupScript

Cita:
Iniciado por kennyhp Ver Mensaje
Prueba así:

Código:
Protected Sub FormView1_ModeChanged(ByVal sender As Object, ByVal e As System.EventArgs)

	ClientScript.RegisterStartupScript(Me.GetType(), "ClientScript", "<script type=""text/javascript"">alert('el modo se ha cambiado')</script>", True)

End Sub
De esta forma tampoco me funciona. Y no entiendo bien por qué. Si por ejemplo hago una funcion javascript con alert, por ejemplo, y la coloco para ejecutarse en un boton con el evento onClientClick por ejemplo funciona sin problemas. Lo que quiero es que esa misma función se ejecute automáticamente al cambiar el modo del formview y no tenga que apretar un boton.

El objetivo en sí es cargar una serie de valores predeterminados al añadir un registro. Ahora se cargan apretando un boton, pero es un poco chapucero, lo suyo sería que al dar al boton de insertar un nuevo registro , apareciese la pantalla de inserción con los valores predeterminados ya cargados. De ahí el evento modeChange. Con este evento detecto cuando se da al boton de insertar registro, lo siguiente, que no me sale, sería mandar ejecutar la función de cargar los valores.

Eduardo
  #4 (permalink)  
Antiguo 06/03/2009, 04:44
 
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 348
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: No me funciona ClientScript.RegisterStartupScript

a mí me funciona así:

Código PHP:
string Clientscript "<script>alert('" message "');</script>";   //registramos el script
        
if (!Page.ClientScript.IsStartupScriptRegistered("Message"))
            
Page.ClientScript.RegisterStartupScript(Page.GetType(), "Message"Clientscript); 
__________________
Bicis nuevas y de segunda mano: Bicibid
  #5 (permalink)  
Antiguo 06/03/2009, 14:32
 
Fecha de Ingreso: octubre-2008
Mensajes: 80
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: No me funciona ClientScript.RegisterStartupScript

Cita:
Iniciado por ZeroZ Ver Mensaje
a mí me funciona así:

Código PHP:
string Clientscript "<script>alert('" message "');</script>";   //registramos el script
        
if (!Page.ClientScript.IsStartupScriptRegistered("Message"))
            
Page.ClientScript.RegisterStartupScript(Page.GetType(), "Message"Clientscript); 
Hola:

Gracias por tu respuesta. En principio yo no uso PHP, aunque parece que hay pocas diferencias en este caso. Por lo que veo construyes el script un poco diferente. Parece que el mensaje en sí lo pones como una variable, verificas que el script no esta registrado, cosa que en mi ejemplo no aparece. He hecho un ejemplo parecido al que pones


Código:
Protected Sub FormView1_ModeChanged(ByVal sender As Object, ByVal e As System.EventArgs)
	Dim mensaje As String = "<script type='text/javascript'>alert('el modo se ha cambiado')</script>"
	If Not Page.ClientScript.IsStartupScriptRegistered("Message") Then
		Page.ClientScript.RegisterStartupScript(Page.GetType(), "Message", mensaje)
	End If

End Sub
Pero sigue sin funcionar.
He puesto para probar un boton que ejecute en el click la funcion "Message", pero no hace nada y en la consola de errores dice que no esa definida la funcion (despues de haber cambiado el modo).

En fin NPI que le pasa.

Eduardo
  #6 (permalink)  
Antiguo 06/03/2009, 15:47
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: No me funciona ClientScript.RegisterStartupScript

Asi te va a funcionar.

Dim s As String
s = "<script language=""javascript"">{ alert('hola'); }</script>"
ClientScript.RegisterStartupScript(Page.GetType, "Nombre", s)

Saludos
  #7 (permalink)  
Antiguo 06/03/2009, 17:18
 
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 348
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: No me funciona ClientScript.RegisterStartupScript

Hola emailesc,

el código que te puse es en c# y la conversiona a VB es muy similar, en cuanto a lo de ejecutar este tipo de scipts CREO que solo funciona en el onload, ya que una vez pasado el onload, la página está cargada y no lo va a ejecutar. si quieres asociar el script a un evento, tendrías que hacerlo con javascript.
__________________
Bicis nuevas y de segunda mano: Bicibid
  #8 (permalink)  
Antiguo 09/03/2009, 03:24
 
Fecha de Ingreso: octubre-2008
Mensajes: 80
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: No me funciona ClientScript.RegisterStartupScript

Cita:
Iniciado por ZeroZ Ver Mensaje
Hola emailesc,

el código que te puse es en c# y la conversiona a VB es muy similar, en cuanto a lo de ejecutar este tipo de scipts CREO que solo funciona en el onload, ya que una vez pasado el onload, la página está cargada y no lo va a ejecutar. si quieres asociar el script a un evento, tendrías que hacerlo con javascript.
Hola a todos:

En primer lugar gracias por vuestra ayuda.

Efectivamente ZeroZ tienes razón. Si pongo el codigo en el Page_Load funciona sin problemas, por lo no debe ser un problema del codígo en sí, si no de que no funciona si lo pongo en un evento FormView_ModeChanged.

¿Como podría hacer para asociar una funcion Javascript a este evento (FormView1_ModeChanged)?

Edu
  #9 (permalink)  
Antiguo 22/07/2010, 08:28
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: No me funciona ClientScript.RegisterStartupScript

Me.ClientScript.RegisterStartupScript(Me.GetType() , "Startup", "alert (Cochino Punto y coma jaja.');", True)
si observas bien creo que tu problema es el Punto y coma ya que a mi me daba ese mismo error hasta que me di cuenta que era un Bendito ; jeje que colera..!

Espero le funcione de esa manera ya que a mi me funciona bien.
  #10 (permalink)  
Antiguo 23/07/2010, 00:05
 
Fecha de Ingreso: octubre-2008
Mensajes: 80
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: No me funciona ClientScript.RegisterStartupScript

Hola:

Gracias por la respuesta.

Saludos.
  #11 (permalink)  
Antiguo 27/04/2012, 14:46
Avatar de jsoadgoEC  
Fecha de Ingreso: abril-2012
Ubicación: Ecuador
Mensajes: 1
Antigüedad: 12 años
Puntos: 0
Respuesta: No me funciona ClientScript.RegisterStartupScript

Que tal,

tuve un problema similar, y aunque no salia ningún mensaje de error, no desplegaba la nueva ventana. Revisando dentro de las propiedades del objeto Type, en la propiedad DeclaringMethod, tiene la siguiente excepción:

"Sólo se puede llamar al método en un tipo para el que Type.IsGenericParameter es true."

encontre la solución en el siguiente link, espero les sirva:

http://social.msdn.microsoft.com/Forums/es/netfxwebes/thread/33571ce3-f6e9-4e9e-8f63-ce0d92831328

Suerte!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:41.