ASP.NET Web フォーム - DataList コントロール
このセクションでは、 ASP.NET DataList コントロールは、Repeater コントロールよりも柔軟性が高く、データをテーブルの形式で表示します。DataList コントロールは、Repeater コントロールと同様に、コントロールにバインドされた項目の繰り返しリストを表示するために使用されます。ただし、DataList コントロールは、デフォルトでデータ項目にテーブルを追加します。
DataSet を DataList コントロールにバインドする
DataList コントロールは、Repeater コントロールと同様に、コントロールにバインドされた項目の繰り返しリストを表示するために使用されます。ただし、DataList コントロールは、デフォルトでデータ項目にテーブルを追加します。 DataList コントロールは、データベース テーブル、XML ファイル、またはその他の項目リストにバインドできます。ここでは、XML ファイルを DataList コントロールにバインドする方法を示します。
この例では、次の XML ファイル (「cdcatalog.xml」) を使用します。
<?xml version="1.0"coding="ISO-8859-1"?><catalog><cd><title>エンパイア・バーレスク</title><artist>ボブ・ディラン</artist><country>USA</country ><company>コロンビア</company><price>10.90</price><year>1985</year></cd><cd><title>Hide your heart</title><artist>ボニータイラー</artist><country>UK</country><company>CBS Records</company><price>9.90</price><year>1988</year></cd><cd><title>グレイテスト ヒッツ</title><アーティスト>ドリーパートン</artist><country>USA</country><company>RCA</company><price>9.90</price><year>1982</year></cd><cd><title>まだ入手しましたブルース</title><アーティスト>ゲイリー・ムーア</アーティスト><国>英国</country><会社>ヴァージンrecords</company><price>10.20</price><year>1990</year></cd><cd><title>Eros</title><artist>Eros Ramazzotti</artist><country>EU< /country><company>BMG</company><price>9.90</price><year>1997</year></cd></catalog>この XML ファイルを表示します: cdcatalog.xml
まず、「System.Data」名前空間をインポートします。 DataSet オブジェクトを操作するには、この名前空間が必要です。 .aspx ページの先頭に次のディレクティブを含めます。
<%@ インポート名前空間="System.Data" %>次に、XML ファイルの DataSet を作成し、ページが最初に読み込まれるときに XML ファイルを DataSet に読み込みます。
<script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))end ifend sub次に、.aspx ページに DataList コントロールを作成します。 <HeaderTemplate> 要素のコンテンツが最初にレンダリングされ、出力に 1 回だけ表示されます。一方、<ItemTemplate> 要素のコンテンツは DataSet 内の「レコード」ごとに繰り返されます。 最後に、<FooterTemplate> 要素のコンテンツは次のようになります。出力に 1 回だけ表示されます。
<html><body><form runat="server"><asp:DataList id="cdcatalog" runat="server"><HeaderTemplate>...</HeaderTemplate><ItemTemplate>...</ItemTemplate>< FooterTemplate>...</FooterTemplate></asp:DataList></form></body></html>次に、スクリプトを追加して DataSet を作成し、mycdcatalog DataSet を DataList コントロールにバインドします。次に、DataList コントロールには、ヘッダーを含む <HeaderTemplate>、表示されるデータ項目を含む <ItemTemplate>、およびテキストを含む <FooterTemplate> が設定されます。 DataList の Gridlines プロパティを「both」に設定すると、テーブルの境界線を表示できることに注意してください。
例
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog。 DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"gridlines="both" runat="server"><HeaderTemplate>マイ CD カタログ</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title") )%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price")%></ItemTemplate><FooterTemplate>Copyright Hege Refsnes</FooterTemplate></asp:DataList></form></body></html>スタイルを使用する
DataList コントロールにスタイルを追加して、出力をより派手にすることもできます。
例
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog。 DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"runat="server"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -ホリゾンタlalign="center"headerstyle-font-bold="true"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"footerstyle-font-size="9pt"footerstyle-font-italic="true"><ヘッダーテンプレート>私のCD カタログ</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price" )%></ItemTemplate><FooterTemplate>著作権 Hege Refsnes</FooterTemplate></asp:DataList></form></body></html><AlternatingItemTemplate> を使用する
<ItemTemplate> 要素の後に <AlternatingItemTemplate> 要素を追加して、出力内の交互の行の外観を記述することができます。 DataList コントロール内の <AlternatingItemTemplate> 領域のデータにスタイルを追加できます。
例
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog。 DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"runat="server"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -horizontalalign="center"headerstyle-font-bold="Tr ue"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"alternatingitemstyle-backcolor="#e8e8e8"alternatingitemstyle-forecolor="#000000"footerstyle-font-size="9pt"footerstyle-font-italic=" True"><HeaderTemplate>My CD カタログ</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price" )%></ItemTemplate><AlternatingItemTemplate>"<%#Container.DataItem("title")%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price")%></AlternatingItemTemplate><FooterTemplate>© Hege Refsnes</FooterTemplate></asp:DataList>< /form></body></html>