不知道为什么我不能格式化此文本

问题描述:

现在,我可能会有点厚,并以错误的方式做到这一点,但总之,我有一个数据集,我运行一个查询来检索什么客户已下令。具体来说,我选择了一个包含多个项目的测试用途。不知道为什么我不能格式化此文本

饶你所有的代码,但我有与问题的特定位为:

<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> 

忽略的东西内嵌代码方面,我正在另一个开发商的项目和保存及时了解他们的工作方式,让他们更容易返回。

但是,这会打印出我究竟是什么,但它不会将其格式化为表格中的行,它只会在页面顶部打印一长串文本。

我在这里错过了什么,或者只是纯粹以错误的方式去做?因为我无法弄清楚它为什么不循环打印结果。

+0

你错过了

标签吗? :) – falstro2009-08-03 09:05:04
+0

不,我刚刚省略了部分代码,因为我不想粘贴整个页面,因为还有更多。 – LiamGu 2009-08-03 09:08:34

+0

Liam Gulliver ...我编辑了我的答案,请检查并让我知道.. – 2009-08-03 10:20:47

回答

试试这个:

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#)

试试这个:

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#)