Retroceder   Foros del Web > Programación para sitios web > .NET

Respuesta
 
Herramientas Desplegado
Antiguo 27-jun-2005, 04:50   #1 (permalink)
Bravenap está en el buen camino
 
Avatar de Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 1.899
Enviar un mensaje por Skype™ a Bravenap
Recuperar valores de controles generados dinámicamente

Hola, muy buenas.

A partir de un DataTable genero controles TextBox y los añado dinámicamente a la página. Los valores se cargan bien en todos los controles pero al estar generados dinámicamente no consigo recuperar los textos modificados. Pongo el código para cargar los controles:

Código:
            Dim tabla As New Table
            With tabla
                .HorizontalAlign = HorizontalAlign.Center
                .CellSpacing = 15
            End With

            Dim controlesPreguntas(dtPreguntas.Rows.Count) As String
            Dim controlesOrden(dtPreguntas.Rows.Count) As String

            For i As Integer = 0 To dtPreguntas.Rows.Count - 1
                Dim fila As New TableRow
                Dim celdaOrden As New TableCell
                celdaOrden.VerticalAlign = VerticalAlign.Top
                Dim celdaPregunta As New TableCell
                celdaPregunta.VerticalAlign = VerticalAlign.Top

                Dim txtOrden As New TextBox
                With txtOrden
                    .Rows = 1
                    .Columns = 1
                    .MaxLength = 2
                    .Text = dtPreguntas.Rows(i).Item("orden")
                    .ID = "orden_" & i
                End With
                controlesOrden.SetValue(txtOrden.ClientID, i)
                celdaOrden.Controls.Add(txtOrden)
                fila.Cells.Add(celdaOrden)

                Dim txtPregunta As New TextBox
                With txtPregunta
                    .TextMode = TextBoxMode.MultiLine
                    .Rows = 3
                    .Columns = 100
                    .MaxLength = 600
                    .Text = dtPreguntas.Rows(i).Item("pregunta")
                    .ID = "pregunta_" & i
                End With
                celdaPregunta.Controls.Add(txtPregunta)
                fila.Cells.Add(celdaPregunta)

                tabla.Rows.Add(fila)
            Next

            Me.phPreguntas.Controls.Add(tabla)

            Session("numControles") = controlesOrden.Length
Y luego intento recuperar los nuevos valores así:

Código:
        Dim numControles As Integer = Session("numControles")
        Dim txtOrden As New TextBox
        Dim txtPregunta As New TextBox
        Dim i As Integer
        For i = 0 To numControles - 1
            txtOrden = FindControl("orden_" & i)
            Response.Write(txtOrden.Text)
        Next
Y la línea en rojo da el siguiente error: Object reference not set to an instance of an object.

¿Alguna idea?
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
Bravenap está desconectado   Responder Citando
Antiguo 27-jun-2005, 05:12   #2 (permalink)
Bravenap está en el buen camino
 
Avatar de Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 1.899
Enviar un mensaje por Skype™ a Bravenap
Bueno, no era lo que pretendía pero al menos he conseguido resolverlo de esta sencillísima manera:

Código:
        Dim numControles As Integer = Session("numControles")
        Dim insOrden(numControles) As String
        Dim insPreguntas(numControles) As String
        Dim i As Integer
        For i = 0 To numControles - 1
            insOrden.SetValue(Request.Form("orden_" & i), i)
            insPreguntas.SetValue(Request.Form("pregunta_" & i), i)
        Next
Gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
Bravenap está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 19:38.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93