<p>So, I am kinda new to ASP.net development still, and I already don't like the stock ASP.net controls for displaying my database query results in table format. (I.e. I would much rather handle the HTML myself and so would the designer!)</p>

<p>So my question is: What is the best and most secure practice for doing this without using ASP.net controls? So far my only idea involves populating my query result during the Page_Load event and then exposing a DataTable through a getter to the *.aspx page. From there I think I could just iterate with a foreach loop and craft my table as I see fit.</p>

I believe you're looking for a
```
<Repeater>
```
control.  It contains some functionality similar to the GridViews, but allows you hand-craft all of the HTML for the Header, Item, and Footers yourself.  Simply call the databinding code as you would for a gridview, and change the ASPX page to suit your exact HTML needs.
http://msdn.microsoft.com/en-us/magazine/cc163780.aspx