Response.Write () записывает непосредственно в поток ответов. Однако HTML-код на странице ASPX сначала обрабатывается, буферизуется и только затем записывается в поток ответов. Это приводит к тому, что ваши данные отправляются до отправки любой другой части страницы.
Вы не должны использовать Response.Write (). Вместо этого вам нужно поместить ваши данные в тот же HTML-код, который обрабатывается механизмом рендеринга ASP.NET. Для этого используйте следующий синтаксис:
<script runat="server">
Do While reader.HasRows
Do While reader.Read
</script>
<tr>
<td valign="top" width="100"><% =reader("SKUN") %><br /></td>
<td valign="top" width="200"><% =reader("DESCR") %></td>
<td valign="top" width="50"><% =reader("QORD") %></td>
<td valign="top" width="50"><% =reader("PRIC") %></td>
</tr>
<script runat="server">
Loop
reader.NextResult()
Loop
Редактировать на основе комментариев
Я думаю, что это ваш лучший вариант:
<table id="someTable" runat="server">
....
<script runat="server">
Do While reader.HasRows
Do While reader.Read
Dim tr as new HtmlTableRow
tr.Cells.Add(new HtmlTableCell(){ InnerText = reader("SKUN"),Width=100,VAlign="top"})
tr.Cells.Add(new HtmlTableCell(){ InnerText = reader("DESCR"),Width=200,VAlign="top"})
tr.Cells.Add(new HtmlTableCell(){ InnerText = reader("QORD"),Width=50,VAlign="top"})
tr.Cells.Add(new HtmlTableCell(){ InnerText = reader("PRIC"),Width=50,VAlign="top"})
someTable.Rows.Add(tr)
</script>
извините, если он не компилируется в VB.net справа от бита .. (У меня только установлен C #)