Foros del Web » Programando para Internet » ASPX (.net) »

Agregar evento javascript a un control dentro de un formview

Estas en el tema de Agregar evento javascript a un control dentro de un formview en el foro de ASPX (.net) en Foros del Web. Buenas a todos, Tengo un botón DELETE dentro de un control formview que muestra proyectos, de forma individual. El caso es que ahora mismo si ...
  #1 (permalink)  
Antiguo 30/12/2009, 08:50
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 1 mes
Puntos: 0
Agregar evento javascript a un control dentro de un formview

Buenas a todos,

Tengo un botón DELETE dentro de un control formview que muestra proyectos, de forma individual.

El caso es que ahora mismo si el usuario pulsa DELETE, borra el proyecto que está mostrando el formview.

Le he intentado añadir una confirmación al botón, y lo he conseguido, pero si cambia la vista del formview a edición o inserción, da error porque no encuentra el control.

He probado poniéndolo en form_load, page_load y fvProyecto_databound, con esta sintaxis:

Código:
        If fvProyecto.CurrentMode = FormViewMode.ReadOnly Then
            CType(fvProyecto.FindControl("lnkDelete"), LinkButton).Attributes.Add("Onclick", "return confirm('Are you sure to Delete this project?')")
        End If
El caso es que si estoy en modo edición y le doy al botón Update o Cancel, para volver al modo Vista, da como bueno el currentmode de la comparación, pero no encuentra el control.

Creo que me equivoco en el evento en que albergar este trozo de código. Puede alguien echarme una mano?

Muchas gracias.
  #2 (permalink)  
Antiguo 31/12/2009, 11:32
 
Fecha de Ingreso: septiembre-2009
Mensajes: 111
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Agregar evento javascript a un control dentro de un formview

SALUDOS joseibarz.. una pregunta: tu control es un Input??? porque recuerda que para poder encontrar un control primero debes especificarle en donde buscar... mira te pongo un ejemplo para buscar un control en un GridView: en este caso el control es un Input Radio:

Código C#:
Ver original
  1. private void BusquedaRadio)
  2. {
  3.      foreach (GridViewRow row in GridView1.Rows)
  4.     {
  5.          HtmlInputRadioButton radio = row.Cells[0].Controls[1] as HtmlInputRadioButton;
  6.          if (radio != null)
  7.          {
  8.             //Localiza el control que está marcado
  9.             if (radio.Checked == true)
  10.             {
  11.                   //...Tu codigo para el control
  12.             }
  13.          }
  14.      }
  15. }

Espero que este código te sea de utilidad...

FELIZ AñO!!

Atte. yo.
__________________
Si caminas por la Senda del Conocimiento... y una Luz en la Oscuridad Ilumina tu Camino... No seas cu#$r@ y compártela.
  #3 (permalink)  
Antiguo 01/01/2010, 13:39
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Agregar evento javascript a un control dentro de un formview

Hola mad249,

El control no es un input, es un linkbutton, que está en el itemtemplate del formview, no está en el edittemplate ni en el inserttemplate.

No creo que le tenga que indicar la fila al formview, pues lo estoy usando del mismo modo que he puesto aquí en todo el proyecto, sin problemas.

Creo que lo que estoy fallando es el evento en que coloco la asignación. Aún me hago un lio con los eventos...

Saludos y gracias anyway!
  #4 (permalink)  
Antiguo 01/01/2010, 15:43
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Agregar evento javascript a un control dentro de un formview

He podido hurgar más en el tema, y controlo que no sea nula la asignación del control, por lo que ya no tengo error de código.

Pero sigue fallándome cuando edito el formview y acepto los cambios, vuelve al ItemTemplate, pero parece que no encuentra el control, como si el form_load lo ejecutara con los controles del EditTemplate, y no encuentra el lnkDelete.

(Por cierto, como podrás ver he hecho buena tu sugerencia de indicarle la fila al formview.ROW.findcontrol(). Gracias!

Tengo esto en el page_load:

Código:
        If fvProyecto.CurrentMode = FormViewMode.ReadOnly Then
            Dim mydelete As LinkButton = CType(fvProyecto.Row.FindControl("lnkDelete"), LinkButton)
            If mydelete IsNot Nothing Then
                mydelete.Attributes.Add("Onclick", "return confirm('Are you sure to Delete this project?')")
            End If
        End If
Que puede estar pasando? Yo sigo cabezota con que no es el evento apropiado...

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 21:59.