none
2 botones en form RRS feed

  • Pregunta

  • Hola amigos del foro,

    escribo para que me puedan orientar un poquito. estoy comenzando clases de asp.net y me encargaron un trabajo. ya estoy en la ultima parte pero tengo un inconveniente y es que en un webform tengo 2 botones. el primero es del tipo html "submit" para ejecutar el post del formulario y el segundo es un asp button que tiene como fin armar una url y llamar a otra pagina. el tema estaa en que cuando ejecuto ese boton se me ejecuta de igual manera el submit y no el evento click del boto asp.

    aqui dejo mi fuente HTML y el metodo que esta en .cs del web form.

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <link href="BootStrap/css/bootstrap.css" rel="stylesheet" />
        <link href="BootStrap/css/bootstrap.min.css" rel="stylesheet" />
        <style>
            .margen{
                padding:10px;
            }
        </style>
        <title>Registro 2</title>
    </head>
    <body>
        <div class="container">
        <form id="form1" runat="server" class="form-control margen" action="detallesCliente.aspx" method="post" >
            <h3 class="margen">Registro Cliente</h3>
            <br />  
       <div class="form-group">
        <label for="txtrut">Rut</label>
        <asp:TextBox ID="txtrut" CssClass="form-control" placeholder="Ingrese rut" runat="server"></asp:TextBox>
      </div>
       <div class="form-group">
        <label for="txtNombre">Nombre</label>
        <asp:TextBox ID="txtNombre" CssClass="form-control" placeholder="Ingrese nombre" runat="server"></asp:TextBox>
      </div>
        <div class="form-group">
        <label for="txtApellidoP">Apellido Paterno</label>
        <asp:TextBox ID="txtApellidoP" CssClass="form-control" placeholder="Ingrese apellido paterno" runat="server"></asp:TextBox>
      </div>
        <div class="form-group">
        <label for="txtApellidoM">Apellido Materno</label>
        <asp:TextBox ID="txtApellidoM" CssClass="form-control" placeholder="Ingrese apellido materno" runat="server"></asp:TextBox>
      </div>
        <div class="form-group">
        <label for="txtEdad">Edad</label>
        <asp:TextBox ID="txtEdad" CssClass="form-control" placeholder="Ingrese edad" runat="server"></asp:TextBox>
      </div>
       <div class="form-group">
        <label for="txtPeso">Peso</label>
        <asp:TextBox ID="txtPeso" CssClass="form-control" placeholder="Ingrese peso (Kgs)" runat="server"></asp:TextBox>
      </div>
            <div class="form-group">
        <label for="txtAltura">Altura</label>
        <asp:TextBox ID="txtAltura" CssClass="form-control" placeholder="Ingrese Altura (m)" runat="server"></asp:TextBox>
      </div>
        <div class="form-group">
        <label for="txtTalladeCalzado">Talla de Calzado</label>
        <asp:TextBox ID="txtTalladeCalzado" CssClass="form-control" placeholder="Ingrese Talla de Calzado" runat="server"></asp:TextBox>
      </div>
           <input id="submit1" type="submit" value="Enviar" class="btn btn-default"  />
           <asp:Button ID="btnreporte"  CssClass="btn btn-default"   runat="server"  Text="Reporte" OnClick="btnreporte_Click"  />
    
        </form>
     </div>
    </body>
    </html>
    

    protected void btnreporte_Click(object sender, EventArgs e)
            {
                string url = "reporte.aspx?txtrut=" + txtrut.Text;
                url = url + "&txtNombre=" + txtNombre.Text;
                url = url + "&txtApellidoP=" + txtApellidoP.Text;
                url = url + "&txtApellidoM=" + txtApellidoM.Text;
                url = url + "&txtEdad=" + txtEdad.Text;
                url = url + "&txtPeso=" + txtPeso.Text;
                url = url + "&txtAltura=" + txtAltura.Text;
                url = url + "&txtTalladeCalzado=" + txtTalladeCalzado.Text;
                Response.Redirect(url);
            }

    Por su ayuda desde ya muchas gracias.


    Si la respuesta te ayuda, pues márcala como respuesta y vota. Saludos desde Santiago de Chile.

    domingo, 24 de septiembre de 2017 13:50

Respuestas

  • Sí, el evento click sí que se tiene que ejecutar cuando pulsas el botón, eso no es problema. El problema estaría en el caso de que quieras hacer eso SIN que ocurra un Submit. Esto no se puede conseguir con los automatismos de ASP.NET; si quieres que al pulsar un botón se ejecute algo en el servidor sin que exista un Submit, entonces ya no vale usar los automatismos de ASP.NET, hay que recurrir a otros mecanismos como por ejemplo enviar la petición mediante AJAX.
    domingo, 24 de septiembre de 2017 17:28
  • el tema estaa en que cuando ejecuto ese boton se me ejecuta de igual manera el submit y no el evento click del boto asp.

    Esa es la forma en la que funciona ASP.NET. Cualquier cosa que dispare un evento en el servidor, siempre lo que hace es un submit, y cuando el submit llega al servidor, éste analiza los datos que le han llegado para determinar qué fue lo que ocurrió en el lado cliente y en consecuencia llamar al evento correspondiente. Por lo tanto, cualquier <asp:button> que pongas en la página siempre hace lo primero un Submit, y después ya se dispara el evento que le corresponda si es que tiene alguno conectado.
    domingo, 24 de septiembre de 2017 15:17

Todas las respuestas

  • el tema estaa en que cuando ejecuto ese boton se me ejecuta de igual manera el submit y no el evento click del boto asp.

    Esa es la forma en la que funciona ASP.NET. Cualquier cosa que dispare un evento en el servidor, siempre lo que hace es un submit, y cuando el submit llega al servidor, éste analiza los datos que le han llegado para determinar qué fue lo que ocurrió en el lado cliente y en consecuencia llamar al evento correspondiente. Por lo tanto, cualquier <asp:button> que pongas en la página siempre hace lo primero un Submit, y después ya se dispara el evento que le corresponda si es que tiene alguno conectado.
    domingo, 24 de septiembre de 2017 15:17
  • Muchas gracias por la aclaración, pero existe alguna manera de controlar esto para que ejecute el evento clic?.

    Si la respuesta te ayuda, pues márcala como respuesta y vota. Saludos desde Santiago de Chile.

    domingo, 24 de septiembre de 2017 16:25
  • Sí, el evento click sí que se tiene que ejecutar cuando pulsas el botón, eso no es problema. El problema estaría en el caso de que quieras hacer eso SIN que ocurra un Submit. Esto no se puede conseguir con los automatismos de ASP.NET; si quieres que al pulsar un botón se ejecute algo en el servidor sin que exista un Submit, entonces ya no vale usar los automatismos de ASP.NET, hay que recurrir a otros mecanismos como por ejemplo enviar la petición mediante AJAX.
    domingo, 24 de septiembre de 2017 17:28