Если вы действительно не хотите использовать элемент управления сеткой, просто добавьте элемент управления заполнителем на страницу.
<asp:PlaceHolder id="placeHolder" runat="server"></asp:PlaceHolder>
Затем динамически создайте сетку с использованием объектов Table и Row, затем, как только вы построите страницу, добавьте ее в качестве заполнителя.
placeHolder.Controls.Clear();
Table table = new Table()
//.. foreach loop through your data sourde
TableRow row = new TableRow()
TableCell cell = new TableCell()
cell.Text = "your data element";
row.Cells.Add(cell);
table.Rows.Add(row);
//.. close loop
placeHolder.Controls.Add(table);
Эта ссылка делает нечто подобное
Я делал это раньше (не помню, почему), но вы не сможете легко разбить страницу на страницы или отсортировать данные. Для этого вам понадобится просмотр списка или тому подобное. Но это создаст сетку, которую вы хотите. Я все еще рекомендовал бы взглянуть на ListView, Repeater и т.д ....