Since this is the ASP.NET forum, here's an ASP.NET-related response. First, be sure to read the ASP.NET documentation in the .NET Framework SDK - you can't read far without seeing something about data-bound controls. Specifically, look at the DataList and DataGrid controls (using a templated column in the case of the latter). Because they are data-bound controls, you can pass them a DataSet, DataTable, or any other IEnumerable (or IListSource). You specify the template - they provide the repetition and, if you like, the paging for multi-page results (as well as editing capabilities).
-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----