Tengo un problema, que no tengo idea que esté fallando.
Tengo 2 image button, dentro de un form, al dar click en el primero quiero que valide por javaScript que al menos se haya seleccionado una opción de un conjunto de checkbox y después haga un redirect a una pagina y cuando de click en otro imagebutton, me redireccione a otra pagina sin validar nada.
El primer imagebutton se llama: ImageButton1
El segundo: btnOpina
Tengo mas o menos el siguiente código:
Código:
En el codigo tengo esto:<form id="Form1" name="opina" runat="server"> <SCRIPT language="JavaScript"> <!-- var selection=true; function selectionClicked(){ selection=false; } function ChecarEncuesta(){ if(selection){ alert("No has proporcionado tu opinion"); return false; } else return true; } //--> </SCRIPT> <table> <tr> <td class="tx2" vAlign="top"><asp:radiobuttonlist id="rdRespuestas" Runat="server" CssClass="tx2" Font-Bold="True"></asp:radiobuttonlist></td> </tr> <tr> <td class="spc" height="14"> <asp:label id="hddRutaEncuesta" Runat="server" Visible="False"></asp:label></td> <td class="spc" height="14"> </td> </tr> <tr> <td><asp:imagebutton id="ImageButton1" Runat="server" Width="39" Height="11" ImageUrl="i/b_vota.gif" OnClick="ImageButton1_Click1"></asp:imagebutton></td> </tr> </table> <Table> <TR> <TD class="spc" colSpan="2" height="1"> </TD> </TR> <TR> <TD class="tx" vAlign="top" align="left" colSpan="2"><asp:label id="lblDescripcion" Runat="server"></asp:label></TD> </TR> <TR> <TD vAlign="top" align="center" width="6"></TD> <TD align="center" width="121"><asp:imagebutton id="btnOpina" Runat="server" ImageUrl="i/b_opina.gif" OnClick="btnOpina_Click1"></asp:imagebutton></TD> </TR> </Table> </form>
Código:
Al dar click en el ImageButton1, la parte de validar con JavaScript si lo está haciendo, pero despues no entra en el evento click.protected void Page_Load(object sender, System.EventArgs e) { rdRespuestas.Attributes.Add("onclick","selectionClicked()"); ImageButton1.Attributes.Add("onclick","return ChecarEncuesta()"); } private void InitializeComponent() { } protected void ImageButton1_Click1(object sender, ImageClickEventArgs e) { string urlEncuesta = hddRutaEncuesta.Text + "?EncuestaId=" + hddEncuestaId.Text + "&Vota=" + rdRespuestas.SelectedValue; ; Response.Redirect(urlEncuesta); } protected void btnOpina_Click1(object sender, ImageClickEventArgs e) { Response.Redirect(hddRutaOpina.Text); }
Al dar click en btnOpina, no está entrando al evento, puse brakepoints en los eventos y estos no ocurren al dar click.
Pienso que puede estar faltando lo siguiente, que tengo entendido que se pone por default, pero no lo encuentro en mi codigo.
Código:
Pero en el html se pone por default el evento OnClick dentro de los imagebutton:ImageButton1.Click += new ImageClickEventHandler(ImageButton1_Click1); btnOpina.Click += new ImageClickEventHandler(btnOpina_Click1);
Código:
Está muy extraño, no se por que automaticamente se pone el OnClick dentro del htm y no me pone en automatico la declaracion del evento click de cada boton dentro del Code Behind <asp:imagebutton id="ImageButton1" Runat="server" Width="39" Height="11" ImageUrl="i/b_vota.gif" OnClick="ImageButton1_Click1"></asp:imagebutton> <asp:imagebutton id="btnOpina" Runat="server" ImageUrl="i/b_opina.gif" OnClick="btnOpina_Click1"></asp:imagebutton>