Using DataGrid to Display Tabular Data

Una de las tareas más counes dentro de una aplicación Web es proveer una página a los usuarios que despliega información en forma tabular desde alguna fuente de datos. En ASP clásico, tenemos que crear una tabla HTML, hacer una iteración dentro del contenido de algun recordset y crear varios tag para cada uno.

Queda algo asi:

1 <div id=»divScrollTextCont» align=»center»>
2 <div id=»divText»>
3 <%if (not_found = false) then%>
4 <table width=»550″ border=»0″ class=»tx»>
5 <%col = 1%>
6 <%while not rs.EOF%>
7 <%if (col = 1) then Response.Write(«<tr>»)%>
8 <td align=»center»>
9 <a href=»album.asp?albumId=<%=rs(0)%>&userId=<%=rs(7)%>» class=»an» onmousemove=»window.status='<%=rs(2)%>’; return true;»>
10 <img src=»<%=Trim(rs(5))%>» alt=»<%=Trim(rs(3))%>» border=»0″
11 id=»im» onMouseOver=»high(this)» onMouseOut=»low(this)»>
12 </a><br>
13 : <a href=»album.asp?albumId=<%=rs(0)%>&userId=<%=rs(7)%>» class=»an» onmousemove=»window.status='<%=rs(2)%>’; return true;»>
14 <%=Trim(rs(2))%></a> :<br>
15 by: <%=Trim(rs(1))%><br>
16 (<%=Trim(rs(4))%> visitas)
17 </td>
18 <%if (col > 3) then
19 Response.Write(«</tr>»)
20 col = 0
21 end if%>
22 <%col = col + 1%>
23 <%rs.MoveNext%>
24 <%wend%>
25 <%else%>
26 <div class=»tx»>No hay albums en la base de datos.</div>
27 <%end if%>
28 <%rs.Close%>
29 <%cn.Close%>
30 </table>
31 </div>
32 </div>

Este código es un ejemplo de un ASP de mi página personal. Como pueden ver, solo 32 líneas de código para llenar esta simple tabla con información de un recordset. Tenemos que manejar todo manualmente, los encabezados de las columnas, el tamaño de los campos, colores… ¡TODO!

Con los DataGrids de ASP.NET toda esta talacha se evita, ya que todo lo hace automáticamente. Es muy sencillo utilizarlo, primero tiramos un DataGrid en la forma. Después hacemos algún DataSet que obtenga información de la base de datos, y por último para desplegar esta información hacemos un Binding (ligar el DataSet al DataGrid):

1 this.DataGrid1.DataSource = this.DataSet1;
2 this.DataGrid1.DataMember = «categories»;
3 this.DataGrid1.DataBind();

Cheers!


Comentarios

Deja una respuesta