不知道为什么我不能格式化此文本
问题描述:
现在,我可能会有点厚,并以错误的方式做到这一点,但总之,我有一个数据集,我运行一个查询来检索什么客户已下令。具体来说,我选择了一个包含多个项目的测试用途。不知道为什么我不能格式化此文本
饶你所有的代码,但我有与问题的特定位为:
<script runat="server">
Do While reader.HasRows
Do While reader.Read
</script>
<tr>
<td valign="top" width="100"><script runat="server">Response.Write(reader("SKUN"))</script><br /></td>
<td valign="top" width="200"><script runat="server">Response.Write(reader("DESCR"))</script></td>
<td valign="top" width="50"><script runat="server">Response.Write(reader("QORD"))</script></td>
<td valign="top" width="50"><script runat="server">Response.Write(reader("PRIC"))</script></td>
</tr>
<script runat="server">
Loop
reader.NextResult()
Loop
</script>
忽略的东西内嵌代码方面,我正在另一个开发商的项目和保存及时了解他们的工作方式,让他们更容易返回。
但是,这会打印出我究竟是什么,但它不会将其格式化为表格中的行,它只会在页面顶部打印一长串文本。
我在这里错过了什么,或者只是纯粹以错误的方式去做?因为我无法弄清楚它为什么不循环打印结果。
试试这个:
Do While reader.Read
Dim tNewRow As New HtmlTableRow
Dim cellSKU, cellDESCR, cellQORD, cellPRIC As New HtmlTableCell
orderNoLbl.Text = reader("NUMB")
cellSKU.InnerText = reader("SKUN")
cellDESCR.InnerText = reader("DESCR")
cellQORD.InnerText = reader("QORD")
cellPRIC.InnerText = reader("PRIC")
tNewRow.Cells.Add(cellSKU)
tNewRow.Cells.Add(cellDESCR)
tNewRow.Cells.Add(cellQORD)
tNewRow.Cells.Add(cellPRIC)
skusTable.Rows.Add(tNewRow)
Loop
Response.Write()直接写入响应流。但是,ASPX页面中的HTML代码首先被处理,缓冲并只写入响应流。这会导致您的数据在页面的任何其他部分发送之前发送。
你不应该使用Response.Write()。相反,您需要将数据放入由ASP.NET渲染引擎处理的相同HTML中。使用下面的语法来实现这一目标:
<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#)
答
试试这个:
Do While reader.Read
Dim tNewRow As New HtmlTableRow
Dim cellSKU, cellDESCR, cellQORD, cellPRIC As New HtmlTableCell
orderNoLbl.Text = reader("NUMB")
cellSKU.InnerText = reader("SKUN")
cellDESCR.InnerText = reader("DESCR")
cellQORD.InnerText = reader("QORD")
cellPRIC.InnerText = reader("PRIC")
tNewRow.Cells.Add(cellSKU)
tNewRow.Cells.Add(cellDESCR)
tNewRow.Cells.Add(cellQORD)
tNewRow.Cells.Add(cellPRIC)
skusTable.Rows.Add(tNewRow)
Loop
答
Response.Write()直接写入响应流。但是,ASPX页面中的HTML代码首先被处理,缓冲并只写入响应流。这会导致您的数据在页面的任何其他部分发送之前发送。
你不应该使用Response.Write()。相反,您需要将数据放入由ASP.NET渲染引擎处理的相同HTML中。使用下面的语法来实现这一目标:
<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#)
你错过了
不,我刚刚省略了部分代码,因为我不想粘贴整个页面,因为还有更多。 – LiamGu 2009-08-03 09:08:34
Liam Gulliver ...我编辑了我的答案,请检查并让我知道.. – 2009-08-03 10:20:47
回答
试试这个:
Response.Write()直接写入响应流。但是,ASPX页面中的HTML代码首先被处理,缓冲并只写入响应流。这会导致您的数据在页面的任何其他部分发送之前发送。
你不应该使用Response.Write()。相反,您需要将数据放入由ASP.NET渲染引擎处理的相同HTML中。使用下面的语法来实现这一目标:
编辑基于评论
我觉得这是最好的选择:
对不起,如果它不在VB.net右键编译..(我只装了C#)
相关问题