Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/01/2007, 11:05
Emerald
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 18 años, 9 meses
Puntos: 0
Problema con Click en Imagebutton

Hola!

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:
<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">&nbsp;<asp:label id="hddRutaEncuesta" Runat="server" Visible="False"></asp:label></td>
	<td class="spc" height="14">&nbsp;</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">&nbsp;</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>
En el codigo tengo esto:
Código:
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 el ImageButton1, la parte de validar con JavaScript si lo está haciendo, pero despues no entra en el evento click.
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:
ImageButton1.Click += new ImageClickEventHandler(ImageButton1_Click1);
btnOpina.Click += new ImageClickEventHandler(btnOpina_Click1);
Pero en el html se pone por default el evento OnClick dentro de los imagebutton:
Código:
<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>
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