Como crear una tabla dinamicamente desde el servidor con ASP.NET

Hay veces que tenemos que mostrar en una pagina web una tabla cuyo numero de filas o columnas depende de los datos que hay una base de datos. Esta tabla se puede usar para mostrar datos o para recogerlos pues a cada columna de la tabla le podemos poner un label o etiqueta y un textbox o caja de texto. Lo mejor es que lo veais con un codigo de ejemplo vb  en el Page_Load que os generara una tabla con 10 filas y 2 columnas para recoger el valor de 10 registros.

 Primero tenemos que definir en la pagina .aspx un control table de la siguiente manera dentro del Body de la pagina:

 <form id="Form1" method="post" runat="server">
   <asp:Table ID="tContenido" Width="100%" Runat="server"></asp:Table>
   <br>
    </form>

A continuacion generamos la tabla desde el codigo de servidor de la siguiente forma en el Page_Load :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Declaracion

 

 

Dim iCont As

Integer

 

 

Dim objRow As TableRow

' una fila

 

 

Dim objCell As TableCell

' una celda

Dim ControlLabel As Label Dim ControlText As TextBox

 

 

'Codigo

tContenido.Rows.Clear()

 

' vaciamos lista de filas

 

 

'A) - Cabecera

objRow =

 

New TableRow

'Creamos fila

objCell =

 

New TableCell

'Creamos y definimos celda

objCell.ColumnSpan = 2 ' tendra 2 columnas

objCell.HorizontalAlign = HorizontalAlign.Center

ControlLabel =

 

New Label

'Creamos label

ControlLabel.Text = "Cabecera de tabla"

 

objCell.Controls.Add(ControlLabel)

 

'Añadimos control a la celda

objRow.Cells.Add(objCell)

 

'añadimos celda a la linea

tContenido.Rows.Add(objRow)

 

'añadimos linea a la tabla

For iCont = 1 To 10 ' definimos 10 filas

objRow =

 

New TableRow

'Creamos fila

 

 

'-Columna 1

objCell =

 

New TableCell

'Creamos y definimos celda

With objCell

.HorizontalAlign = HorizontalAlign.Right

.Width = Unit.Percentage(25)

 

 

End

With

ControlLabel =

 

New Label

'Creamos label

ControlLabel.Text = "Registro " & CStr(iCont) & ":"

objCell.Controls.Add(ControlLabel)

objRow.Cells.Add(objCell)

 

 

'-Columna 2

objCell =

 

New TableCell

'Creamos y definimos celda

With objCell

.HorizontalAlign = HorizontalAlign.Left

.Width = Unit.Percentage(75)

 

 

End

With

ControlText = New TextBox

 

 

With

ControlText.ID = "Cajatexto" &

CStr(iCont)

 

 

' No hay propiedada name!

.MaxLength = 50

 

 

End

With

slCampos.Add(ControlText.ID)

objCell.Controls.Add(ControlText)

objRow.Cells.Add(objCell)

 

 

'-Por fin, la linea a la tabla

tContenido.Rows.Add(objRow)

 

'añadimos linea a la tabla

 

 

Next

Gracias a TFS por la idea.

Espero que os sirva

Sergio

Published 23/5/2008 12:47 por Sergio Vazquez
Archivado en:
Comparte este post:

Comentarios

Saturday, May 24, 2008 4:37 PM por José A. Fernández

# re: Como crear una tabla dinamicamente desde el servidor con ASP.NET

Hola Sergio

Me tome al atrevimiento de referenciar tu articulo para agregar unos tips mas sobre este tema

Generar HTMLTable on-the-fly. Asignar texto a la celda (HTML, Controles, Texto)

geeks.ms/.../generar-htmltable-on-the-fly-asignar-texto-a-la-celda-html-controles-texto.aspx

Saludos.

Monday, May 26, 2008 9:39 AM por Sergio Vazquez

# re: Como crear una tabla dinamicamente desde el servidor con ASP.NET

Hola José

Interesantes tips

Ya sabes que el conocimiento es un bien que crece a medida que se comparte!!

Saludos