Este es un link permanente de RE: Gridview de insercion.
Puedes volver a ver el tema completo o ir al Principiantes
18/07/2007 17:22:33
Javier Santamaria Hombre
Fecha de registro: 02/05/2007
1 post en este tema
188 posts en principiantes
194 posts en todos los foros
RE: Gridview de insercion
Responder  Citar
Hola subgurim, gracias una vez mas por responder.
La verdad es que no tengo declarada ninguna clase con la estructura de pasajero (mal hecho, me hubiera ahorrado mucho tiempo). El tema es que ya consigo añadir mis filas dinamicamente y puedo guardar el estado de las mismas en el viewstate. Cuando se ve la solucion parece sencilla, pero hasta que no llegas a ella no es tan obvia. Voy a contar como lo he hecho por si a alguien le viene bien. Lo he conseguido de la siguiente forma:

Aqui lo que hago es añadir una fila nueva y luego guardo el estado de la tabla en el ViewState.
Protected Sub BtnAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnAdd.Click
        AddNewRow(TblPassengers)
        SaveTblPassengers()
End Sub

Aqui me leo el ViewState para meterlo en la tabla y recuperar la informacion que teniamos en ella.
Protected Sub Page_PreLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreLoad
       Bucles de lectura (Algo larguillos, por eso no los pongo, pero si se necesitan pedirlos)
End Sub

La idea del codigo es que veais cual es la secuencia para llenar y recuperar el ViewState.

Ahora, como no podia ser de otra forma, tengo la siguiente duda:

Al crear los controles dinamicamente no puedo crear procedimientos que manejen sus eventos, ya que al no estar declarados estaticamente no se reconocen. Es decir, yo dinamicamente me creo un control llamado "RdoLeadtbl3", pero no puedo definir en mi archivo .aspx.vb un procedimiento que sea:

Protected Sub RdoLeadtbl3_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RdoLeadtbl3.CheckedChanged

Esto me dice que no se puede compilar, porque no esta definido RdoLeadtbl3 (recordad que lo defino en ejecucion). Por tanto mi problema es: yo voy añadiendo pasajeros a la tabla. De estos pasajeros solo uno puede ser principal. Esto obviamente lo controlo con unos RadioButton (no puede ser RadioButtonList porque quiero un boton por fila y no una lista de botones por fila). El problema que me encuentro es que no se como capturar el evento CheckedChanged de estos RadioButton para cambiar el pasajero principal segun se seleccione uno u otro. Actualmente me pone el puntito en todos  los que pinches y lo que deberia de hacer es cambiarlo. Por tanto la pregunta es:

¿Como se capturan los evetos de los controles creados dinamicamente?

Agradezco cualquier ayuda.

Un saludo.