Repeater控件和DataList控件,可以用來一次顯示一組數據項。比如,可以用它們顯示一個數據表中的所有行。
Repeater控件完全由模板驅動,提供了最大的靈活性,可以任意設置它的輸出格式。DataList控件也由模板驅動,和Repeater不同的是,DataList默認輸出是HTML表格,DataList將數據源中的記錄輸出為HTML表格一個個的單元格。
1. Repeater控件顯示數據
要使用Repeater控件顯示數據,必須創建ItemTemplate。如下所示:
例1:使用ItemTemplate顯示數據

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<div class="movies">
<h1><%#Eval("Title") %></h1>
</div>
<b>Directed by:</b><%#Eval("Director") %>
<br />
<b>Description:</b><%#Eval("Description") %>
</ItemTemplate>
</asp:Repeater>
以上代碼,通過瀏覽器可以看到,.net不會改變里面的結構,模板里面怎么排列,數據顯示也怎么樣顯示。它的HTML如下所示:、

<div class="movies">
<h1>史密斯行動</h1>
</div>
<b>Directed by:</b>Doug Liman
<br />
<b>Description:</b>約翰(布拉德?皮特 Brad Pitt 飾)和
<div class="movies">
<h1>暴力街區</h1>
</div>
<b>Directed by:</b>Luc Besson
<br />
<b>Description:</b>卧虎藏龍而又凌亂不堪的13區…
所以,Repeater的靈活性就在這個上面,完全可以自由發揮,想怎么顯示就怎么顯示。例如,都可以把它放在Javascript代碼中

<script type=”text/javascript”>
<asp:Repeater id=”rptPhotos” Runat=”server”>
<ItemTemplate>
<%# Eval(“Name”, "photos.push(‘Photos/{0}’)") %>
</ItemTemplate>
</asp:Repeater>
</script>
以上,photos是一個Javscript數組對象。Repeater生成的數據,最后就像以下這樣:

<script type="text/javascript">
photos.push('Photos/1.jpg');
photos.push('Photos/2.jpg');
photos.push('Photos/3.jpg');
photos.push('Photos/4.jpg');
…
</script>
2. Repeater中使用模板
Repeater支持以下5種模板
● ItemTemplate : 對每一個數據項進行格式設置 【Formats each item from the data source.】
● AlternatingItemTemplate : 對交替數據項進行格式設置
● SeparatorTemplate : 對分隔符進行格式設置
● HeaderTemplate : 對頁眉進行格式設置
● FooterTemplate : 對頁腳進行格式設置
以上,英文中使用了Formats item from datasource這樣的話,就說明Repeater控件主要是用來對數據進行Format的,控制數據怎么樣排列,怎么樣顯示。
Repeater必須使用的是Itemtemplate,其它的類型模板按需添加。
例2:以下通過CSS控制,顯示了一個比較不錯的列表項:

3. Repeater控件的事件處理
Repeater控件有以下事件:
● DataBinding : Repeater控件綁定到數據源時觸發
● ItemCommand : Repeater控件中的子控件觸發事件時觸發
● ItemCreated : 創建Repeater每個項目時觸發
● ItemDataBound : Repeater控件的每個項目綁定數據時觸發
例3:使用Repeater控件的事件支持編輯、更新、刪除
=== 后台代碼 ===

=== 前台頁面 ===

鏈接:http://www.cnblogs.com/shipfi/archive/2009/10/19/1585703.html