Repeater控件使用(含删除,分页功能)
以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();

}

}