none
Evitar evento de un botón al refrescar pagina RRS feed

  • Pregunta

  • Buenas tardes,

    Tengo un formulario en asp.net donde guardo unos datos al dar al botón enviar. El problema es que si refresco la página después, los datos se vuelven a enviar y lo intenta guardar otra vez. 

    Para evitar esto, he intentado con un UpdtePanel y también redirigiendo a la misma página en el evento click del botón. Esto funciona, pero no se me muestran los mensajes de confirmación de "Tu registro se ha guardado correctamente" o bien de "Error al introducir el registro"

    Estos mensajes los pongo en el lado servidor con

    ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb.ToString())

    ¿hay alguna otra forma de evitar que se active el evento click del botón al refrescar la página?

    Muchas gracias de antemano por la ayuda.

    Un saludo



    Beatriz Rodríguez

    miércoles, 16 de marzo de 2016 16:21

Respuestas

  • hola

    >>El problema es que si refresco la página después, los datos se vuelven a enviar y lo intenta guardar otra vez.

    esto se produce porque el refresh del browser ejecuta la ultima accion del browser, para evitarlo despues de evento deberias realziar un Redirect a la misma pagina, de esta forma la ultima accion seria la de redirect a si misma, asi ya no ejecutara la accion del boton

    >>he intentado con un UpdtePanel y también redirigiendo a la misma página en el evento click del botón. Esto funciona, pero no se me muestran los mensajes de confirmación

    deberias usar el ScriptManager en lugar del ClientScript

    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", sb.ToString(), true) ;
    saludos

    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 16 de marzo de 2016 16:54

Todas las respuestas

  • hola

    >>El problema es que si refresco la página después, los datos se vuelven a enviar y lo intenta guardar otra vez.

    esto se produce porque el refresh del browser ejecuta la ultima accion del browser, para evitarlo despues de evento deberias realziar un Redirect a la misma pagina, de esta forma la ultima accion seria la de redirect a si misma, asi ya no ejecutara la accion del boton

    >>he intentado con un UpdtePanel y también redirigiendo a la misma página en el evento click del botón. Esto funciona, pero no se me muestran los mensajes de confirmación

    deberias usar el ScriptManager en lugar del ClientScript

    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", sb.ToString(), true) ;
    saludos

    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 16 de marzo de 2016 16:54
  • Muchas gracias por la respuesta. Lo único que con ScriptManager me pasa lo mismo que con ClientScript cuando uno el Redirect, que no veo el mensaje...Estoy con Visual Basic. Y he añadido el siguiente código

     ScriptManager.RegisterStartupScript(Me, Me.GetType(), "alert", "alert('Hola');", True)

    ¿Necesito añadir algo en la parte del cliente?

    Muchas gracias por la ayuda

    Un saludo


    Beatriz Rodríguez

    jueves, 17 de marzo de 2016 8:52