Webフォームリピーター
Repeater コントロールは、コントロールにバインドされた項目の繰り返しリストを表示するために使用されます。
DataSet をリピーター コントロールにバインドする
リピーター コントロールは、コントロールにバインドされた項目の繰り返しリストを表示するために使用されます。リピーター コントロールは、データベース テーブル、XML ファイル、またはその他の項目リストにバインドできます。ここでは、XML ファイルをRepeater コントロールにバインドする方法を説明します。
この例では、次の XML ファイル (「cdcatalog.xml」) を使用します:
< ;catalog> ;
<cd>
<title>エンパイア バーレスク</title>
<アーティスト>ボブ・ディラン</アーティスト>
<国>アメリカ</国>
<会社>コロンビア</会社>
<価格>10.90価格>
<年>1985</年>
</cd>
<cd>
<title>心を隠してください</title>
<アーティスト>ボニー・タイラー</アーティスト>
<国>英国</国>
<会社>CBSレコード</会社>
<価格>9.90価格>
<年>1988</年>
</cd>
<cd>
<title>グレイテスト ヒッツ</title>
<アーティスト>ドリー・パートン</アーティスト>
<国>アメリカ</国>
<会社>RCA</会社>
<価格>9.90価格>
<年>1982</年>
</cd>
<cd>
<title>まだ憂鬱です</title>
<アーティスト>ゲイリー・ムーア</アーティスト>
<国>英国</国>
<会社>ヴァージンレコード</会社>
<価格>10.20価格>
<年>1990年</年>
</cd>
<cd>
<title>エロス</title>
<アーティスト>エロス・ラマゾッティ</アーティスト>
<国>EU</国>
<会社>BMG</会社>
<価格>9.90価格>
<year>1997</year>
</cd>
</catalog>
この XML ファイルを表示します: cdcatalog.xml
まず、「System.Data」名前空間をインポートします。 DataSet オブジェクトを操作するには、この名前空間が必要です。 .aspx ページの先頭に次のディレクティブを含めます:
次に、XML ファイルの DataSet を作成し、初回ロードします。この XML ファイルを DataSet に追加します:
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=新しいデータセット
mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
end if
end sub
次に、.aspx ページに Replyer コントロールを作成します。 <HeaderTemplate> 要素のコンテンツは最初にレンダリングされ、出力に 1 回だけ表示されますが、<ItemTemplate> 要素のコンテンツは DataSet の「レコード」ごとに繰り返され、最後に <ItemTemplate 要素のコンテンツが繰り返し表示されます。 FooterTemplate> 要素 の内容は出力に 1 回だけ表示されます:
<body>
<form runat="server">
<asp:Repeater id="cdcatalog" runat= "server"&gt;
&lt; headertemplate&gt;
...&lt;/headertemplate&gt;
&lt; itemtemplate&gt;
...
&lt;/itemtemplate&gt;
&lt; footertemplate&gt; /FooterTemplate>
</asp:Repeater>
</form>
</body>
</html>
次に、DataSet を作成し、mycdcatalog DataSet をバインドするスクリプトを追加します。リピーター制御。それから HTML タグを使用してリピーター コントロールにデータを設定し、<%#Container.DataItem("fieldname")%> によってデータ項目を <ItemTemplate> 領域のセルにバインドします:
Instance
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource=mycdcatalog cdcatalog.DataBind() end if end sub </script> <!DOCTYPE html> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="1" width="100%"> <tr> <th>Title</th> <th>Artist</th> <th>Company</th> <th>Price</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%> </td> <td><%#Container.DataItem("artist")%> </td> <td><%#Container.DataItem("company")%> </td> <td><%#Container.DataItem("price")%> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </html> </body>
「例を実行」ボタンをクリックしてオンライン例を表示します
<AlternatingItemTemplate> の使用
インスタンス
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource=mycdcatalog cdcatalog.DataBind() end if end sub </script> <!DOCTYPE html> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="1" width="100%"> <tr> <th>Title</th> <th>Artist</th> <th>Company</th> <th>Price</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%> </td> <td><%#Container.DataItem("artist")%> </td> <td><%#Container.DataItem("company")%> </td> <td><%#Container.DataItem("price")%> </td> </tr> </ItemTemplate> <AlternatingItemTemplate> <tr bgcolor="#e8e8e8"> <td><%#Container.DataItem("title")%> </td> <td><%#Container.DataItem("artist")%> </td> <td><%#Container.DataItem("company")%> </td> <td><%#Container.DataItem("price")%> </td> </tr> </AlternatingItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </html> </body>
<SeparatorTemplate>
<SeparatorTemplate> 要素を使用して、各レコード間の区切り文字を記述します。以下の例では、テーブルの各行の間に水平線が挿入されています:
インスタンス
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource=mycdcatalog cdcatalog.DataBind() end if end sub </script> <!DOCTYPE html> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="0" width="100%"> <tr> <th align="left">Title</th> <th align="left">Artist</th> <th align="left">Company</th> <th align="left">Price</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%> </td> <td><%#Container.DataItem("artist")%> </td> <td><%#Container.DataItem("company")%> </td> <td><%#Container.DataItem("price")%> </td> </tr> </ItemTemplate> <SeparatorTemplate> <tr> <td colspan="6"><hr></td> </tr> </SeparatorTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </html> </body>
インスタンスの実行 »
「インスタンスの実行」ボタンをクリックしてオンラインインスタンスを表示します