2009-08-03 14 views
1

今、私はちょっと厚くて間違った方法でやっているかもしれませんが、要するに、お客様が注文しました。具体的には、私はテスト目的のために複数のアイテムで1つを選んだ。なぜこのテキストをフォーマットできないのですか?

私はあなたのすべてのコードを惜しまだろうが、私は問題を抱えている特定のビットは次のとおりです。

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

は、物事のインラインコード側を無視し、私は別の開発者がプロ​​ジェクトや維持に取り組んでいます彼らが働く方法で時間がたつにつれて、彼らが戻って行くのがより簡単です。

しかし、これは私の後ろにあるものを正確に表示しますが、テーブル自体の行にはフォーマットされません。ページの上部に1行の長い行が印刷されます。

私はここに何かを見逃しているか、まったく間違ったやり方をしていますか?なぜ私は結果をループして出力しないのか分からないからです。

+0

タグがありません。 :) – falstro

+0

いいえ、コードの一部を省略しました。ページ全体を貼り付けたくないので、もっと多くのページがあるからです。 – LiamGu

+0

Liam Gulliver ...私は自分の答えを編集して、plzチェックし、私に知らせてください。 –

答えて

1

試してみてください:

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

それを移動してもまだ1行が出力されますOo それはすべてがうまくいくように思えますが、私には手がかりがありません。 – LiamGu

+0

スポットをオンにして、そのトリックをしました。それがとても分かりやすいとは信じられない! – LiamGu

2

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#がインストールされている)

+0

私はそれを試しましたが、