Pregunta AYUDA CON UN SCRIPT..

  • lunes, 02 de febrero de 2009 13:13
     
      Tiene código
    Hola, intento desde hace unos dias hacer un script para que actue de igual forma que si hiciese click en un boton y no lo consigo por lo que pido ayuda a ver si alguien me pudede orientar un poco. La situación es la siguiente:
    En una aplicacion asp.net tengo un formulario y en el load realizo una consulta a una base sql server con la que cambio un registro de false a true y me indica que la pagina está en linea. Tengo un boton en esta pagina que hace la consulta al contrario, cambia de true a false, para saber que la pagina no está en linea. Bien, lo que intento hacer es un script para que cuando se cierre la pagina tenga el mismo efecto que si hiciese click en el boton. Pongo el script que tengo (aunque la sintaxis no vale):

    <script type="text/javascript">

    function Descarga() {

    document.getElementById('bt_finsesion').click();  

    }

    window.onunload = Descarga;

    </script>

    y lo que tengo en el boton es simplemente esto (que es lo que quisiera que ejecutara el script):

    Protected Sub bt_finsesion_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bt_finsesion.Click

    Me.SqlDataSource2.Update()

    Session("usu_sesion") = False

    Session.Abandon()

    Response.Redirect("/index.aspx")

    End Sub

    Gracias..


Todas las respuestas

  • miércoles, 04 de febrero de 2009 12:05
     
     

    esto

    document.getElementById('bt_finsesion').click();  

    reemplazas por esto

    __doPostBack(document.all.bt_finsesion.name);

    si es asi marca la respuesta como valida.

    saludos
  • jueves, 05 de febrero de 2009 16:10
     
     
    Hola TeguiMix,

    Hace poco hice una aplicación web que hacia algo muy parecido a lo que explicas tu, de hecho, también seteaba en True una columna en una tabla de un servidor SQL al cargarla y luego la seteaba en false al descargarla.

    Te puedo sugerir una solución alternativa a la tuya, muy parecida a la que yo use.

    Incluye el código que se ejecuta al clickear el botón (bt_fnsession_Click) en el método para el evento UnLoad de la página (Posiblemente deberás encerrarlo dentro de un bloque If Page.IsPostBack para que no se dispare la primera vez que se carga la página).

    Si el botón genera un postBack al ser presionado, entonces todo listo. Cuando presiones el botón, la página se descargará, con lo cual se gatillará el evento UnLoad de la página, ejecutando tu código y, luego, volviendo a la misma página pero con la variable en cuestión seteada a False. También puedes cambiar el comportamiento del botón, como hacer el postBack hacia otra url (seteando la propiedad PostBackUrl del botón - incluso puede ser a la misma página en cuestión) o incluso redirigir a otra url (Response.Redirect(url)), todo esto gatillará la ejecución de tu código.

    De esta forma atacas el problema desde otro ángulo: el código que deseas que se ejecute en el unload de la página está directamente vinculado con el unload de la página, pero también se ejecuta cuando presionas el botón; y no viceversa: el código ha ejecutarse en el unload de la página vinculado con el botón y el botón presionado durante el unload.

    Ojalá que sea algo como lo que estás buscando.

    Saludos.