Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con Click en Imagebutton

Estas en el tema de Problema con Click en Imagebutton en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/01/2007, 11:05
 
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
  #2 (permalink)  
Antiguo 02/01/2007, 20:37
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
Re: Problema con Click en Imagebutton

estas usando vb 2003 o 2005 ?

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 03/01/2007, 16:36
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 7 meses
Puntos: 50
Re: Problema con Click en Imagebutton

Cita:
Iniciado por Emerald Ver Mensaje
...
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
Que tal, bueno corríganme si me equivoco pero estas lineas
Código:
ImageButton1.Click += new ImageClickEventHandler(ImageButton1_Click1);
btnOpina.Click += new ImageClickEventHandler(btnOpina_Click1);
Son solo para aplicaciones windows forms y se almacenan en el codigo propio en 2003 y en el designer del vs2005.

En una aplicacion web el evento se crea en los tags del html donde seleccionaste que se desee el evento, es decir, tú cuando, en el diseñador le das doble click al control se te crea un evento controlador en el code-behind, pero en la tag de ese control, sobre el aspx o htm como lo quieras llamar se crea algo parecido a lo que tienes en este codigo:

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>
si te das cuenta automaticamente se te crea el evento OnClick y es tu codigo en el .CS lo que va a hacer la accion.

ahora, no entiendo por que no te funciona, ya probaste un ispostback a la pagina, algo parecido a esto:


Código:
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)//<<<<<<<<esto
            ImageButton1.Attributes.Add("onclick", "alert('vamos a cambiar');");
    }

//y en tu imagebutton 

    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect("http://www.google.com.mx");
    }
no entiendo por que no te quedo, pero espero te haya ayudado mi comentario
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #4 (permalink)  
Antiguo 03/01/2007, 17:46
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
Re: Problema con Click en Imagebutton

Cita:
Iniciado por erick_arcini
Que tal, bueno corríganme si me equivoco pero estas
lineas

Código:

ImageButton1.Click += new ImageClickEventHandler(ImageButton1_Click1); btnOpina.Click += new ImageClickEventHandler(btnOpina_Click1);

Son solo para aplicaciones windows forms y se almacenan en el codigo propio en 2003 y en el designer del vs2005.
esas líneas no tiene que ver si es para win form o web, es la asociacion del evento, solo que en 2005 en asp.net cuando creas un web site ya no te muestra esas líneas (a menos que te bajes un soft para integrar asp.net applications en tu vs)

Cita:
Iniciado por erick_arcini
si te das cuenta automaticamente se te crea el evento OnClick y es tu codigo en el .CS lo que va a hacer la accion.
Esa es una forma de asociar el código y no es que el .cs sea el que hace la acción es que esos objetos ya están asociados, solo que por comodidad te lo muestra en el designer, recueda que todos los controles que vemos (textbox, imagebutton, buttons, placeholders, etc) son "objetos"

Salu2
  #5 (permalink)  
Antiguo 04/01/2007, 15:29
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Problema con Click en Imagebutton

Muchas gracias por su ayuda, pero sigue sin funcionar, antes de terminar mi desarrollo me cambiaron la maquina con la que estaba trabajando y de una vez me actualizaron a 2005, mi desarrollo lo estaba haciendo en la version 2003 y si funcionaban los botones.

Entiendo que ahora el onclick lo ponga en el codigo del tag del boton, pero no se porque sigue sin funcionar, de hecho puse brake points en el codigo del evento Onclick de cada boton, pero ni siquiera entra al evento.

=(
  #6 (permalink)  
Antiguo 04/01/2007, 15:40
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Problema con Click en Imagebutton

=D Ya encontré la solución!!

Lo que sucedía es que estaba poniendo el body, despues el form, despues un script y despues una tabla:

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 id="Table1" cellSpacing="0" cellPadding="0" width="760" align="left" border="0">
solo cambié el form para que quedara así:

Código:
<body leftMargin="0" topMargin="0">
		<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>
<form id="Form1" name="opina" runat="server">
		<table id="Table1" cellSpacing="0" cellPadding="0" width="760" align="left" border="0">
y ya funcionó!...

dentro de form no debería ir el script

Muchas gracias por su ayuda y comentarios!

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:35.