viernes, 25 de junio de 2010

Crear Tablas dinámicas con C#

En ocasiones es necesario mostrar datos en una tabla que dependerán del estado de una base de datos, es decir, que al momento de diseñar la página no sabemos cuantas filas tendrá dicha tabla.
Para hacer esto tenemos dos sencillas maneras:
1) Primera Forma


 Dibujar una tabla directamente en la vista de Diseño de la página y en la vista Código eliminarle las filas y columnas que tenga. (Figura 1).

(Figura 1 - pincha para ver grande)

De esta manera puedes (en la vista Diseño) poner la tabla en el lugar que desees más fácilmente.
En las propiedades de la tabla (en la vista Código) agregale la propiedad id y runat en server. (Figura 2).


 (Figura 2 - pincha para ver grande)

Ahora ya puedes llamar a tu tabla desde el código c# para trabajar con ella.
En el archivo aspx.cs de tu página vamos a poner el código necesario, en este caso estará en el metodo Page_Load para que se cree la tabla apenas se levante la página.
Trabajando de esta forma debemos utilizar las clases HtlmTableRow para crear las filas necesaria y HtmlTableCell para las celdas. La manera lógica es crear una fila, crear una celda, agregar la celda a la fila y agregar la fila a la tabla:

HtmlTableRow fila = new HtmlTableRow();
HtmlTableCell celda = new HtmlTableCell();
fila.Cells.Add(celda);
tabla.Rows.Add(fila);

y listo!!
Aquí debes tener en cuenta que cada celda que agregues a la fila quedará al lado derecho de la anterior y cada fila que agregues a la tabla quedará debajo de la anterior (obvio xDD).

También debes considerar que sólo puedes agregar controles (System.Web.UI.Control) a las celdas así que si quieres escribir algo debes agregar un LiterlaControl("Palabra").


2) Segunda Forma

 Si quieres trabajar con elementos Table lo haces de la misma forma que antes sólo cambiando los nombres de las clases borrandoles el Html:

Table tabla = new Table();
TableRow fila = new TableRow();
TableCell celda = new TableCell();
fila.Cells.Add(celda);
tabla.Rows.Add(fila);


y listo :/ eso es...

saludos!

1 comentarios:

Juanda Rios dijo...

Hola BristianE,
Me gustaría hacerte una consulta...
Como debería proceder luego de crear mi tabla, para rellenar cada celda de la misma con una nueva tabla mediante C#?
En realidad lo que necesito saber, es como rellenar una celda con una tabla, ya que mediante una función, lo haría para todas las demás.

Desde ya, muchas gracias...
Juan Daniel

Publicar un comentario