DataListDataTableをバインドするには

 

  DataListDataTableを生成してバインドするサンプル

 

DataListDataTableを生成してバインドするサンプル

 

このサンプルは、DataListDataTableを生成してバインドしています。DataListHeaderTemplate, ItemTemplate, FooterTemplateを使用してヘッダ、アイテム、フッタを表示しています。

 

このサンプルでは、以下のノウハウを習得することができます。

 

   DataTableをランタイム時に生成する方法

   DataTableにカラムを追加する方法

   DataTableDataRowを追加する方法

   ListBoxDataTableをバインドする方法

   ListBoxHeaderTemplate/ItemTemplate/FooterTemplateの使い方

   DataTableDataColumnを表示する方法

 

DataTableをランタイム時に生成するには、New DataTable()でインスタンスを生成します。DataTableにカラムを追加するには、ColumnsコレクションのAdd()メソッドを使用します。Add()メソッドの引数には、DataColumnを指定します。DataColumnは、New DataColumn()でインスタンスを生成します。DataColumn()の引数には、カラム名とデータ型を指定します。サンプルでは、Value/Textのカラムを文字型として追加しています。

 

DataTableにレコードを追加するには、DataTableNewRow()メソッドでDataRowを生成します。DataRowを生成したら、Itemプロパティにカラム名を指定して値を設定します。DataRowDataTableに追加するには、DataTableRowsコレクションのAdd()メソッドを使用します。

 

DataTableをバインドするには、DataListDataSourceプロパティにDataTableを設定してDataBind()メソッドを実行します。

 

  6:   Dim dt As New DataTable
  7:   Dim dr As DataRow
  8:   With dt
  9:     .Columns.Add( New DataColumn("Value", GetType(String)) )
 10:     .Columns.Add( New DataColumn("Text", GetType(String)) )
         :::
 12:     dr = .NewRow()
 13:     dr.Item("Value") = "VB.NET"
 14:     dr.Item("Text") = "Visual Basic .NET"
 15:     .Rows.Add(dr)

:::
 31:   End With
 33:   dlstVsNet.DataSource = dt
 34:   dlstVsNet.DataBind()

 

DataListにバインドしたDataTableを表示するには、ItemTemplateを使用します。DataTableのカラムを表示するには、Container.DataItem(“ColumnName”)のように記述します。カラムをフォーマットして表示するには、DataBinder.Eval()を使用します。行47-50では、ItemTemplateを使用してDataTableText/Valueのカラムを表示しています。

<%# Container.DataItem(“Text”) %> <%# Container.DataItem(“Value”) %>のように記述すると、TextValueの間に空白が挿入されます。サンプルのように&でTextValueを結合すると空白が除去されます。

 

40: <asp:DataList id="dlstVsNet" runat="server"

      :::

43:   EnableViewState="False">
 44:   <HeaderTemplate>
 45:     <b>Visual Studio .NET</b>
 46:   </HeaderTemplate>
 47:   <ItemTemplate>
 48:     <%# Container.DataItem("Text") _
 49:       & "(<b>" & Container.DataItem("Value") & "</b>)" %>
 50:   </ItemTemplate>
 51:   <FooterTemplate>
 52:     <b>--
以上--</b>
 53:   </FooterTemplate>
 54: </asp:DataList>

ASP.NET DataListのホームへ戻る