以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部分代码:
<! 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 >
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();
}
}
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();
}
}