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>


