Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/10/2006, 01:56
Avatar de Bravenap
Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 1 mes
Puntos: 4
"Esta fila ya pertenece a otra tabla"

Buenas. Estoy intentando añadir un repeater dinámicamente por cada categoría que obtengo de una consulta a SQL Server, utilizando un repeater de plantilla. Hasta aquí todo bien, pero no puedo añadir más de un registro al repeater de la misma categoría, me indica que la fila ya pertenece a otra tabla. Utilizo dt.NewRow.

Código:
Dim con As New ConexionesBD.datosSQL
            Dim dt As DataTable = con.DevuelveDT("PA_Enlaces")
            Dim ds As New DataSet

            If dt.Rows.Count > 0 Then
                For Each dr As DataRow In dt.Rows
                    Dim dtN As DataTable = dt.Clone
                    If ds.Tables(dr.Item("Nombre")) Is Nothing Then
                        dtN.TableName = dr.Item("Nombre")
                        ds.Tables.Add(dtN)
                    End If
                    Dim drN As DataRow = dtN.NewRow
                    drN("URL") = dr("URL")
                    drN("Titulo") = dr("Titulo")
                    drN("Def") = dr("Def")
                    CType(ds.Tables(dr.Item("Nombre")), DataTable).Rows.Add(drN)

                Next
                For Each dtN As DataTable In ds.Tables
                    Dim rpt As New Repeater
                    rpt.ItemTemplate = Me.rptPlantilla.ItemTemplate
                    rpt.HeaderTemplate = Me.rptPlantilla.HeaderTemplate
                    rpt.FooterTemplate = Me.rptPlantilla.FooterTemplate
                    rpt.SeparatorTemplate = Me.rptPlantilla.SeparatorTemplate
                    rpt.DataSource = dtN
                    rpt.DataBind()
                    Me.pnlEnlaces.Controls.Add(New LiteralControl("<div class='verde' align='center'><b>· " & dtN.TableName & " ·</b></div>"))
                    Me.pnlEnlaces.Controls.Add(rpt)
                Next
            End If
Lo marcado en rojo es la linea de error.

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!