none
¿Cómo llamar a evento Click del servidor, luego de haberse ejecutado Click del lado del cliente? C# RRS feed

  • Pregunta

  • Hola a todos! estoy implementando Sweet Alert en mi proyecto, y a la hora de mostrar una ventana de advertencia:

    Para mostrar esta ventana, la llamo desde mi botón Enviar:

    <button id="btnEnviar" runat="server" type="button" class="btn btn-primary btn-block btnPrimario" onclick="confirmarEnvio()" onserverclick="btnEnviar_Click">
          Enviar <i class="fa fa-fw fa-share-square"></i>
    </button>

    Función para mostrar la ventana de Sweet Alert:

        <script type="text/javascript">
            function confirmarEnvio() {
                swal({
                    title: "¿Enviar Reclamo?",
                    text: "¿Controló que los datos sean correctos? Una vez registrado el reclamo, no puede modificarse",
                    icon: "warning",
                    buttons: true,
                    dangerMode: true,
                })
                    .then((willDelete) => {
                        if (willDelete) {
                            function enviarReclamo() {
                                document.getElementById("<%=btnEnviar%>").click();
                            }
                        }
                    });
            }
        </script>

    Lo que me hace de esta manera, es mostrarme la ventana, y automáticamente ejecutar el evento Click del servidor donde se hacen ciertos registros en la bd, sin darme la posibilidad de presionar "cancel" u "OK".

    ¿De qué manera puedo "pausar" la ejecución, esperar que el usuario seleccione por ejemplo, OK y recién ahí me ejecute el evento del servidor?

    Gracias de antemano por su atención! Saludos

    miércoles, 24 de abril de 2019 14:24

Respuestas

  • hola

    al boton le estas poniendo un runat=server con lo cual ejecuta una accion en el servidor, como recomendacion diria que si vas a programar de esta forma te olvides de los evento de asp.net y pases a $.ajax de jquery invocando webmethods

    Calling ASP.Net WebMethod using jQuery AJAX

    es lo que recomiendo, es mas si vas a seguir por ese camino consejaria vayas pensando en pasarte a asp.net mvc y dejar asp.net

    por otro lado podrias usa el

    function confirmarEnvio(e) {

    e.preventDefault();

    asi detienes el evento click

    pero depsues para anzarlo nuevamente vas a tener que usar el __doPostBack()

    pero la verdad es que este camino es horrible, ve por el lado de ajax y webmethods

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Carlos_Ruiz_M miércoles, 24 de abril de 2019 20:01
    • Marcado como respuesta AguFortini jueves, 25 de abril de 2019 14:33
    miércoles, 24 de abril de 2019 18:53

Todas las respuestas

  • Hola  

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comento que la sintaxis que usas esta muy bien, e investigando encontre este codigo en la pagina de sweet alertet que despliega el mismo mensaje que tu, te compartto la liga para que pueda verificarlo tu mismo

    swal({

      title: "¿Enviar Reclamo?",
      text: "¿controló que los datos sean correctos? Una vez registrado el reclamo, no puede modificarse",
      icon: "warning",
      buttons: true,
      dangerMode: true,
    })
    .then((willDelete) => {
      if (willDelete) {
        swal("Poof! Your imaginary file has been deleted!", {
          icon: "success",
        });
      } else {
        swal("Your imaginary file is safe!");
      }

    });

    https://sweetalert.js.org/guides/

    Gracias por usar los foros de MSDN.

    Carlos Ruiz
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 24 de abril de 2019 15:37
  • Hola Carlos, gracias por tu respuesta, pero no responde a mi pregunta.. lo que necesito es una vez que se ejecuta la advertencia de sweet alert, al presionar OK se ejecute un evento del lado del servidor.. sólo eso. 

    Saludos

    miércoles, 24 de abril de 2019 17:10
  • hola

    al boton le estas poniendo un runat=server con lo cual ejecuta una accion en el servidor, como recomendacion diria que si vas a programar de esta forma te olvides de los evento de asp.net y pases a $.ajax de jquery invocando webmethods

    Calling ASP.Net WebMethod using jQuery AJAX

    es lo que recomiendo, es mas si vas a seguir por ese camino consejaria vayas pensando en pasarte a asp.net mvc y dejar asp.net

    por otro lado podrias usa el

    function confirmarEnvio(e) {

    e.preventDefault();

    asi detienes el evento click

    pero depsues para anzarlo nuevamente vas a tener que usar el __doPostBack()

    pero la verdad es que este camino es horrible, ve por el lado de ajax y webmethods

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Carlos_Ruiz_M miércoles, 24 de abril de 2019 20:01
    • Marcado como respuesta AguFortini jueves, 25 de abril de 2019 14:33
    miércoles, 24 de abril de 2019 18:53