1

ページで可変回数繰り返す UserControl を構築しています。コントロールにロードするデータを処理する最も効率的な方法を決定しようとしています。簡単にするために、次のような構造になるとしましょう。

<table>
    <tr>
        <td>Header Item</td>
    </tr>
    <tr>
        <td>Body Item n</td>
    </tr>
    <tr>
        <td>Body Item n+1</td>
    </tr>
    <tr>
        <td>Body Item n+2</td>
    </tr>
    <tr>
        <td>etc.</td>
    </tr>
    <tr>
        <td>Footer Item</td>
    </tr>
</table>

このコントロールにロードされるすべてのデータは、SQL クエリから取得されます。ボディ項目はコントロールの反復ごとに変更されますが、ヘッダー項目とフッター項目は同じです。それが、私が見ることができるいくつかのオプションの間で決定しようとしているところです.

  1. クエリをコントロール自体のコード ビハインドに組み込み、コントロールの反復ごとに繰り返すか、次のようにします。
  2. コントロールが使用される .aspx.cs ページからデータをクエリし、コントロールの作成時にそれらをプロパティとして配信します。
  3. ?

オプション 1 は非常に非効率的です。2 つの項目だけについて話している場合、非効率性を受け入れる傾向があるかもしれませんが、もっと多くの項目について話しているのです。

選択肢 2 はもっともらしく思えますが、それが実際に選択肢 1 よりも優れているかどうかはわかりません。

考え?その他のオプション?

4

1 に答える 1

0

Repeaterコントロールを使用する

ここを見てください:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater(v=vs.80).aspx?cs-save-lang=1&cs-lang= csharp#コードスニペット-1

<asp:Repeater runat="server">

 <HeaderTemplate>
  <table>
   <tr>
    <td>Header Item</td>
   </tr>
 </HeaderTemplate>

 <ItemTemplate>
  <tr>
   <td>Body Item <%# Eval("Number") %></td>
  </tr>
 </ItemTemplate>

 <FooterTemplate>
   <tr>
    <td>Footer Item</td>
   </tr>
  </table>
 </FooterTemplate>

</asp:Repeater>
于 2012-12-21T09:04:25.160 に答える