方法 : テンプレート コントロールにデータを連結する

更新 : 2007 年 11 月

FormViewDataListRepeater、および ListView の各 Web サーバー コントロールは、テンプレートを使用してデータを表示し、データを挿入、更新、または削除するためのユーザー入力を取得します。さらに、GridView コントロールと DetailsView コントロールにテンプレートを使用すると、データのレイアウトをカスタマイズできます。

テンプレート宣言されたコントロールの DataSourceID プロパティをデータ ソース コントロールの ID に設定すると、テンプレート宣言されたコントロールを LinqDataSource コントロール、ObjectDataSource コントロール、SqlDataSource コントロールなどのデータ ソース コントロールに連結できます。次に、テンプレート内の Eval 関数と Bind 関数を使用してデータ ソースのデータを連結できます。詳細については、「データ バインディング式の構文」を参照してください。

テンプレートを使用してコントロールをデータに連結するには

  1. 次の例のように、SqlDataSource コントロールなどのデータ ソース コントロールをページに追加します。

    <asp:SqlDataSource ID="SqlDataSource1" 
      SelectCommand="SELECT * FROM [Products]"
      ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>"
      RunAt="server">
    </asp:SqlDataSource>
    
    <asp:SqlDataSource ID="SqlDataSource1" 
      SelectCommand="SELECT * FROM [Products]"
      ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>"
      RunAt="server">
    </asp:SqlDataSource>
    
  2. ASP.NET FormView コントロールなどのテンプレートをサポートするコントロールを追加します。

  3. 次の例のように、テンプレート宣言されたコントロールの DataSourceID プロパティに、手順 1 で作成したデータ ソース コントロールの ID を設定します。

    <asp:FormView ID="FormView1"
      DataSourceID="SqlDataSource1"
      DataKeyNames="ProductID"     
      Runat="server">
    </asp:FormView>
    
  4. テンプレート宣言されたコントロールにテンプレートを追加し、コントロールとマークアップを指定します。

  5. データを表示するには、プロパティの設定として Eval 関数を使用して連結されたデータ フィールドを参照します。次の例のように、データを挿入または編集するために使用するテンプレートで、Bind 関数を使用してデータ フィールドを参照します。

    <asp:FormView ID="FormView1"
      DataSourceID="SqlDataSource1"
      DataKeyNames="ProductID"     
      RunAt="server">
    
      <ItemTemplate>
        <table>
          <tr><td align="right"><b>Product ID:</b></td>       <td><%# Eval("ProductID") %></td></tr>
          <tr><td align="right"><b>Product Name:</b></td>     <td><%# Eval("ProductName") %></td></tr>
          <tr><td align="right"><b>Category ID:</b></td>      <td><%# Eval("CategoryID") %></td></tr>
          <tr><td align="right"><b>Quantity Per Unit:</b></td><td><%# Eval("QuantityPerUnit") %></td></tr>
          <tr><td align="right"><b>Unit Price:</b></td>       <td><%# Eval("UnitPrice") %></td></tr>
        </table>                 
      </ItemTemplate>                   
    </asp:FormView>
    
    <asp:FormView ID="FormView1"
      DataSourceID="SqlDataSource1"
      DataKeyNames="ProductID"     
      RunAt="server">
    
      <ItemTemplate>
        <table>
          <tr><td align="right"><b>Product ID:</b></td>       <td><%# Eval("ProductID") %></td></tr>
          <tr><td align="right"><b>Product Name:</b></td>     <td><%# Eval("ProductName") %></td></tr>
          <tr><td align="right"><b>Category ID:</b></td>      <td><%# Eval("CategoryID") %></td></tr>
          <tr><td align="right"><b>Quantity Per Unit:</b></td><td><%# Eval("QuantityPerUnit") %></td></tr>
          <tr><td align="right"><b>Unit Price:</b></td>       <td><%# Eval("UnitPrice") %></td></tr>
        </table>                 
      </ItemTemplate>                 
    </asp:FormView>
    

    各 Web サーバー コントロールがサポートするテンプレートは異なります。たとえば、Repeater コントロールは ItemTemplateAlternatingItemTemplate をサポートし、交互のコントロール、スタイル、およびマークアップを使用してデータを表示します。Web サーバー コントロールおよびサポートされているテンプレートの詳細については、「ASP.NET のデータ バインド Web サーバー コントロールの概要」を参照してください。

参照

処理手順

方法 : SqlDataSource コントロールを使用して ODBC データベースに接続する (Visual Studio)

概念

データ ソース コントロールの概要