DataListのカラムに複数のフィールドを表示するには

 

   DataListのカラムに複数のフィールドを表示するサンプル

 

DataListのカラムに複数のフィールドを表示するサンプル

 

このサンプルでは、DataListのカラムにレコードの複数のフィールドを表示します。DataListの得意先のカラムには、得意先名、部署役職、担当者名、電話番号が表示されます。

 

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

 

  DataListのカラムに複数のフィールドを表示する方法

 

サンプルの行30-74では、DataListを定義しています。行32-38では、HeaderTemplateでヘッダを定義しています。行39-54では、ItemTemplateで奇数行に表示するアイテムを定義しています。行42では、得意先テーブルの得意先IDを表示しています。データベースのフィールドを表示するときは、<%#...%>タグ内に記述してバインドします。行45-51<%#...%>タグには、得意先テーブルの得意先名、部署役職、担当者名、電話番号のフィールドを記述しています。StringクラスのFormat()メソッドでは、プレースホルダーを使用して各フィールドを改行させています。プレースホルダー{0},{1},{2},{3}には、得意先名、部署役職、担当者名、電話番号が挿入されます。行55-70では、AlternatingItemTemplateで偶数行に表示するアイテムを定義しています。表示するフィールドは、ItemTemplateと同じです。行71-73では、FooterTemplateでフッタ情報を定義しています。

 

30: <asp:DataList id="dlstCustomers" runat="server"
 31:   EnableViewState="False">
 32:   <HeaderTemplate>
       ::::

38:   </HeaderTemplate>
 39:   <ItemTemplate>
 40:     <tr class="dlstItemStyle">
 41:       <td>
 42:         <%# Container.DataItem("CustomerID") %>
 43:       </td>
 44:       <td>
 45:         <%#
 46:           String.Format("{0}<br>{1}<br>{2}<br>{3}", _
 47:           Container.DataItem("CompanyName"), _
 48:           Container.DataItem("ContactTitle"), _
 49:           Container.DataItem("ContactName"), _
 50:           Container.DataItem("Phone"))
 51:         %>
 52:       </td>
 53:     </tr>
 54:   </ItemTemplate>
 55:   <AlternatingItemTemplate>
 70:   </AlternatingItemTemplate>
 71:   <FooterTemplate>
       ::::

73:   </FooterTemplate>
 74: </asp:DataList>

 

 

Page_Load()イベントでは、ページが最初にロードされたときSub DataBind()を呼び出して得意先テーブルをバインドしています。

 

  6: Sub Page_Load(s As Object, e As EventArgs)
  7:   If Not IsPostBack() Then
  8:     DataBind()
  9:   End If
 10: End Sub

Sub DataBind()では、OleDbConnection, OleDbDataAdapterクラスを使用してデータベースから得意先テーブルのレコードを抽出してDataSetに格納しています。さらに、DataSetDataListDataSourceプロパティに設定してDataBind()メソッドでバインドしています。これで、得意先テーブルがDataListに表示されます。


 12: Sub DataBind()
 13:   Dim strSQL As String = "Select Top 5 * From Customers"
 14:   Dim con As New OleDbConnection(ConfigurationSettings.AppSettings("conStringNw"))
 15:   Dim da As New OleDbDataAdapter(strSQL, con)
 16:   Dim ds As New DataSet()
 18:   da.Fill(ds)
 19:   dlstCustomers.DataSource = ds
 20:   dlstCustomers.DataBind()
 21: End Sub

 

ASP.NET DataListのホームへ戻る