ASP.NET - Controlar eventos en controles creados dinamicamen

 
Vista:

Controlar eventos en controles creados dinamicamen

Publicado por Yomero (21 intervenciones) el 06/09/2007 07:32:12
Hola a todos...

Les comento sobre un problemilla que tengo y espero alguno me pueda ayudar con ello.

Tengo una asp:table donde agrego por programacion controles Label y RadioButtonList en filas diferentes, y necesito controlar el evento SelectIndexChanged del control RadioButtonList (dependiendo del index seleccionado realizo ciertas cosas. He leido y he dado mas o menos con la solucion, el problema es que no he dado en como controlar el evento autopostback, ya que al cambiar de index del RadioButtonList, se me desaparece el asp:table donde tengo agregado todos los demas controles RadioButtonList y Labels añadidos anteriormente (o sea la tabla desaparece completamente con todo y los controles).

A grandes rasgos te pongo el codigo aspx.vb que estoy utilizando

Partial Class Encuestas

Inherits System.Web.UI.Page


Dim drQuery As SqlDataReader

'declaramos las variables para utilizar la tabla dinamica

Dim Celda As TableCell

Dim Fila As TableRow

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Page.IsPostBack = False Then

'limpiamos la tabla dinamica

Me.tbPreguntas.Rows.Clear()

'ejecutamos el reader para obtener las preguntas

drQuery = dsPregunta.Select(DataSourceSelectArguments.Empty)

If drQuery.HasRows Then

MuestraPreguntaPadre()

End If

End If

End Sub

Sub MuestraPregunta()

'leemos la pregunta

drQuery.Read()

'insertamos una fila en la tabla en ella pondremos la pregunta

Fila = New TableRow()

'le agregamos su primera celda

Celda = New TableCell()

'creamos un label que contendra el contenido de la pregunta

Dim lblpregunta As Label = New Label()

lblpregunta.Text = Trim(drQuery("Nombre"))

Celda.Controls.Add(lblpregunta)

Fila.Cells.Add(Celda)

'y la anexamos a la tabla

Me.tbPreguntas.Rows.Add(Fila)


'Creamos la segunda fila y en ella ponemos las posibles respuestas

Fila = New TableRow()

'creamos un radiobuttonlist con las posibles respuestas de la pregunta

Dim rblRespuestas As RadioButtonList = New RadioButtonList()

rblRespuestas.ID = "rblRespuestas_" & Me.drQuery("Id_Pregunta")


'----------

'En esta parte agrego como items (varian en cantidad) del radiobuttomlist las respuestas obtenidas de otro reader

'----------


'le agregamos la segunda celda con las respuestas

Celda = New TableCell()

'Añadimos un Evento relacionado con el Control radio button list añadido

AddHandler rblRespuestas.SelectedIndexChanged, AddressOf MirblRespuestas_SelectedIndexChanged

rblRespuestas.AutoPostBack = True

'añadimos el radio button list

Celda.Controls.Add(rblRespuestas)

Fila.Cells.Add(Celda)

'y la anexamos a la tabla

Me.tbPreguntas.Rows.Add(Fila)

End Sub


'Declaramos el Evento del Control Button añadido

Public Sub MirblRespuestas_SelectedIndexChanged(ByVal Sender As Object, ByVal e As System.EventArgs)

Dim rbl As RadioButtonList

rbl = DirectCast(Sender, RadioButtonList)


'----------

'En esta parte dependiendo de la seleccion debo realizar ciertas acciones, obtengo el valor del index seleccionado

'----------


End Sub


Agradeciendo de antemano la ayuda que puedan brindarme.


Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Controlar eventos en controles creados dinamica

Publicado por Yomero (21 intervenciones) el 06/09/2007 07:37:11
en el load de la pagina, hay un error de dedo al indicar el llamado del procedimiento para obtener la pregunta.

Dice :

If drQuery.HasRows Then

MuestraPreguntaPadre()

End If

------------------------------

Y deberia decir:

If drQuery.HasRows Then

MuestraPregunta()

End If

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar