以SQL SERVER2000自带数据库Northwind中Customers表示例.
前台aspx代以码:

<%
@ Page Language="C#" AutoEventWireup="true" CodeFile="Repeater.aspx.cs" Inherits="Repeater"
%>

<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>

<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
runat
="server"
>
<
title
>
Repeater控件使用
</
title
>

<
script
language
="javascript"
type
="text/javascript"
>
function Check(parentChk,ChildId)

{
var oElements = document.getElementsByTagName("INPUT");
var bIsChecked = parentChk.checked;
for(i=0; i<oElements.length;i++)

{
if( IsCheckBox(oElements[i]) &&
IsMatch(oElements[i].id, ChildId))

{
oElements[i].checked = bIsChecked;
}
}
}
function IsMatch(id, ChildId)

{
var sPattern ='^Repeater1.*'+ChildId+'$';
var oRegExp = new RegExp(sPattern);
if(oRegExp.exec(id))
return true;
else
return false;
}
function IsCheckBox(chk)

{
if(chk.type == 'checkbox') return true;
else return false;
}

</
script
>
</
head
>

<
body
>
<
form
id
="form1"
runat
="server"
>
<
div
style
="margin-bottom:20px;text-align:center; width:1006px;"
>
Repeater控件使用
</
div
>
<
asp:Repeater
ID
="Repeater1"
runat
="server"
>

<%
--SeparatorTemplate描述一个介于每条记录之间的分隔符--
%>

<%
--<SeparatorTemplate>
<tr>
<td colspan="5"><hr /></td>
</tr>
</SeparatorTemplate>--
%>
<
HeaderTemplate
>
<
table
border
="1"
cellpadding
="0"
cellspacing
="0"
style
="width:1006px;border-collapse:collapse; text-align:center;"
>
<
tr
>
<
td
style
="background-color:#cccccc; font-weight:bold; height:25px;"
><
input
id
="chkAll"
name
="chkAll"
runat
="server"
type
="checkbox"
onclick
="Check(this,'chkItem')"
title
="全选"
/>
全
</
td
>
<
td
style
="background-color:#cccccc; font-weight:bold; height:25px;"
>
View
</
td
>
<
td
style
="background-color:#cccccc; font-weight:bold; height:25px;"
>
CustomerID
</
td
>
<
td
style
="background-color:#cccccc; font-weight:bold;"
>
CompanyName
</
td
>
<
td
style
="background-color:#cccccc; font-weight:bold;"
>
ContactName
</
td
>
<
td
style
="background-color:#cccccc; font-weight:bold;"
>
ContactTitle
</
td
>
<
td
style
="background-color:#cccccc; font-weight:bold;"
>
Address
</
td
>
</
tr
>
</
HeaderTemplate
>
<
ItemTemplate
>
<
tr
>
<
td
><
asp:CheckBox
ID
="chkItem"
runat
="server"
/></
td
>
<
td
><
a
href
='<%#
"View.aspx?id
="+DataBinder.Eval(Container.DataItem, "
CustomerID") %
>
' target="_blank">View
</
a
></
td
>
<
td
><
asp:Label
ID
="lblID"
Text
='<%#
DataBinder.Eval(Container.DataItem, "CustomerID")%
>
' runat="server">
</
asp:Label
></
td
>

<
td
>
<%
# DataBinder.Eval(Container.DataItem, "CompanyName")
%>
</
td
>

<
td
>
<%
# DataBinder.Eval(Container.DataItem, "ContactName")
%>
</
td
>

<
td
>
<%
# DataBinder.Eval(Container.DataItem, "ContactTitle")
%>
</
td
>

<
td
>
<%
# DataBinder.Eval(Container.DataItem, "Address")
%>
</
td
>
</
tr
>
</
ItemTemplate
>

<%
--AlternatingItemTemplate描述交替输出行的另一种外观--
%>
<
AlternatingItemTemplate
>
<
tr
bgcolor
="#e8e8e8"
>
<
td
><
asp:CheckBox
ID
="chkItem"
runat
="server"
/></
td
>
<
td
><
a
href
='<%#
"View.aspx?id
="+DataBinder.Eval(Container.DataItem, "
CustomerID") %
>
' target="_blank">View
</
a
></
td
>
<
td
><
asp:Label
ID
="lblID"
Text
='<%#
DataBinder.Eval(Container.DataItem, "CustomerID")%
>
' runat="server">
</
asp:Label
></
td
>

<
td
>
<%
# DataBinder.Eval(Container.DataItem, "CompanyName")
%>
</
td
>

<
td
>
<%
# DataBinder.Eval(Container.DataItem, "ContactName")
%>
</
td
>

<
td
>
<%
# DataBinder.Eval(Container.DataItem, "ContactTitle")
%>
</
td
>

<
td
>
<%
# DataBinder.Eval(Container.DataItem, "Address")
%>
</
td
>
</
tr
>
</
AlternatingItemTemplate
>
<
FooterTemplate
>
</
table
>
</
FooterTemplate
>
</
asp:Repeater
>
<
div
style
="background-color:#dedede; width:1006px;"
>
<
asp:Button
ID
="btnDel"
runat
="server"
Text
="删除"
OnClick
="btnDel_Click"
/>
<
asp:label
ID
="lblCurrentPage"
runat
="server"
></
asp:label
>
<
asp:HyperLink
id
="lnkFrist"
runat
="server"
>
首页
</
asp:HyperLink
>
<
asp:HyperLink
id
="lnkPrev"
runat
="server"
>
上一页
</
asp:HyperLink
>
<
asp:HyperLink
id
="lnkNext"
runat
="server"
>
下一页
</
asp:HyperLink
>
<
asp:HyperLink
id
="lnkEnd"
runat
="server"
>
尾页
</
asp:HyperLink
>
</
div
>
</
form
>
</
body
>
</
html
>
后台CS部分代码:
using
System;
using
System.Data;
using
System.Configuration;
using
System.Collections;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
System.Data.SqlClient;

public
partial
class
Repeater : System.Web.UI.Page

{
PagedDataSource PDS = new PagedDataSource();
private string ConnStr = ConfigurationManager.AppSettings["dbConnectionString"];
private string strsql = "";

protected void Page_Load(object sender, EventArgs e)

{
if (!this.Page.IsPostBack)

{
this.bind();
}
}

private void bind()

{
int TotalCount = 0;//总记录数
int TotalPage = 1; //总页数
SqlConnection conn = new SqlConnection(ConnStr);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter("select CustomerID,CompanyName,ContactName,ContactTitle,Address from Customers order by CustomerID desc", conn);
DataSet ds = new DataSet();
da.Fill(ds, "Customers");
DataView dv = ds.Tables[0].DefaultView;

TotalCount = dv.Count;
PDS.DataSource = dv;
conn.Close();
PDS.AllowPaging = true;
PDS.PageSize = 20;
int CurPage;
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;

if (TotalCount == 0)
TotalPage = 1;
else

{
if (TotalCount % PDS.PageSize == 0)
TotalPage = TotalCount / PDS.PageSize;
else
TotalPage = TotalCount / PDS.PageSize + 1;
}

PDS.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "共" + TotalCount.ToString() + "条记录 当前页:" + CurPage.ToString() + "/" + TotalPage;

lnkFrist.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";
if (!PDS.IsFirstPage)
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);

if (!PDS.IsLastPage)
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
lnkEnd.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + TotalPage;

Repeater1.DataSource=PDS;
Repeater1.DataBind();
}

protected void btnDel_Click(object sender, EventArgs e)

{
string ID = "";

for (int i = 0; i < this.Repeater1.Items.Count; i++)

{
CheckBox cbox = (CheckBox)this.Repeater1.Items[i].FindControl("chkItem");
if (cbox.Checked == true)

{
if (ID == "")

{
ID = "'"+((Label)this.Repeater1.Items[i].FindControl("lblID")).Text+"'";
}
else

{
ID += "," + "'" + ((Label)this.Repeater1.Items[i].FindControl("lblID")).Text + "'";
}
}
}
strsql = "delete from Customers where CustomerID in (" + ID + ")";
try

{
SqlConnection conn = new SqlConnection(ConnStr);
SqlCommand comm = new SqlCommand(strsql, conn);
comm.Connection.Open();
comm.ExecuteNonQuery();
comm.Connection.Close();
System.Web.HttpContext.Current.Response.Write("<script language='javascript'>alert('刪除成功!');</script>");
}
catch (System.Data.SqlClient.SqlException E)

{
throw new Exception(E.Message);
}
finally

{
if (conn.State == ConnectionState.Open)
conn.Close();
}
this.bind();
}
}