Repeater控件使用(含删除,分页功能)

时间:2021-09-22 10:03:28

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

Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)<% @ Page Language="C#" AutoEventWireup="true" CodeFile="Repeater.aspx.cs" Inherits="Repeater"  %>
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)
< html  xmlns ="http://www.w3.org/1999/xhtml"   >
Repeater控件使用(含删除,分页功能)
< head  runat ="server" >
Repeater控件使用(含删除,分页功能)    
< title > Repeater控件使用 </ title >
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)    
< script  language ="javascript"  type ="text/javascript" >
Repeater控件使用(含删除,分页功能)    
function Check(parentChk,ChildId)   
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)    
{   
Repeater控件使用(含删除,分页功能)        
var oElements = document.getElementsByTagName("INPUT");   
Repeater控件使用(含删除,分页功能)        
var bIsChecked = parentChk.checked;   
Repeater控件使用(含删除,分页功能)      
Repeater控件使用(含删除,分页功能)       
for(i=0; i<oElements.length;i++)   
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
{   
Repeater控件使用(含删除,分页功能)            
if( IsCheckBox(oElements[i]) &&    
Repeater控件使用(含删除,分页功能)                IsMatch(oElements[i].id, ChildId))   
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)            
{   
Repeater控件使用(含删除,分页功能)                oElements[i].checked 
= bIsChecked;   
Repeater控件使用(含删除,分页功能)            }
           
Repeater控件使用(含删除,分页功能)        }
      
Repeater控件使用(含删除,分页功能)     }
   
Repeater控件使用(含删除,分页功能)      
Repeater控件使用(含删除,分页功能)    
function IsMatch(id, ChildId)   
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)    
{   
Repeater控件使用(含删除,分页功能)        
var sPattern ='^Repeater1.*'+ChildId+'$';   
Repeater控件使用(含删除,分页功能)        
var oRegExp = new RegExp(sPattern);   
Repeater控件使用(含删除,分页功能)        
if(oRegExp.exec(id))    
Repeater控件使用(含删除,分页功能)            
return true;   
Repeater控件使用(含删除,分页功能)        
else    
Repeater控件使用(含删除,分页功能)            
return false;   
Repeater控件使用(含删除,分页功能)    }
   
Repeater控件使用(含删除,分页功能)      
Repeater控件使用(含删除,分页功能)    
function IsCheckBox(chk)   
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)    
{   
Repeater控件使用(含删除,分页功能)        
if(chk.type == 'checkbox') return true;   
Repeater控件使用(含删除,分页功能)        
else return false;   
Repeater控件使用(含删除,分页功能)    }
   
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)    
</ script >
Repeater控件使用(含删除,分页功能)
</ head >
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)
< body >
Repeater控件使用(含删除,分页功能)    
< form  id ="form1"  runat ="server" >
Repeater控件使用(含删除,分页功能)    
< div  style ="margin-bottom:20px;text-align:center; width:1006px;" > Repeater控件使用 </ div >
Repeater控件使用(含删除,分页功能)
< asp:Repeater  ID ="Repeater1"  runat ="server" >
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)    
<% --SeparatorTemplate描述一个介于每条记录之间的分隔符-- %>
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)    
<% --<SeparatorTemplate>
Repeater控件使用(含删除,分页功能)        
<tr>
Repeater控件使用(含删除,分页功能)        
<td colspan="5"><hr /></td>
Repeater控件使用(含删除,分页功能)        
</tr>
Repeater控件使用(含删除,分页功能)    
</SeparatorTemplate>--
%>
Repeater控件使用(含删除,分页功能)    
Repeater控件使用(含删除,分页功能)    
< HeaderTemplate >
Repeater控件使用(含删除,分页功能)      
< table  border ="1"  cellpadding ="0"  cellspacing ="0"  style ="width:1006px;border-collapse:collapse; text-align:center;" >
Repeater控件使用(含删除,分页功能)      
< tr >
Repeater控件使用(含删除,分页功能)        
< 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 >
Repeater控件使用(含删除,分页功能)        
< td  style ="background-color:#cccccc; font-weight:bold; height:25px;" > View </ td >
Repeater控件使用(含删除,分页功能)        
< td  style ="background-color:#cccccc; font-weight:bold; height:25px;" > CustomerID </ td >
Repeater控件使用(含删除,分页功能)        
< td  style ="background-color:#cccccc; font-weight:bold;" > CompanyName </ td >
Repeater控件使用(含删除,分页功能)        
< td  style ="background-color:#cccccc; font-weight:bold;" > ContactName </ td >
Repeater控件使用(含删除,分页功能)        
< td  style ="background-color:#cccccc; font-weight:bold;" > ContactTitle </ td >
Repeater控件使用(含删除,分页功能)        
< td  style ="background-color:#cccccc; font-weight:bold;" > Address </ td >
Repeater控件使用(含删除,分页功能)      
</ tr >
Repeater控件使用(含删除,分页功能)    
</ HeaderTemplate >
Repeater控件使用(含删除,分页功能)    
< ItemTemplate >
Repeater控件使用(含删除,分页功能)      
< tr >
Repeater控件使用(含删除,分页功能)        
< td >< asp:CheckBox  ID ="chkItem"  runat ="server"   /></ td >
Repeater控件使用(含删除,分页功能)        
< td >< href ='<%#  "View.aspx?id ="+DataBinder.Eval(Container.DataItem, " CustomerID") % > ' target="_blank">View </ a ></ td >
Repeater控件使用(含删除,分页功能)        
< td >< asp:Label  ID ="lblID"  Text ='<%#  DataBinder.Eval(Container.DataItem, "CustomerID")% > ' runat="server"> </ asp:Label ></ td >
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
< td > <% # DataBinder.Eval(Container.DataItem, "CompanyName") %> </ td >
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
< td > <% # DataBinder.Eval(Container.DataItem, "ContactName") %> </ td >
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
< td > <% # DataBinder.Eval(Container.DataItem, "ContactTitle") %> </ td >
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
< td > <% # DataBinder.Eval(Container.DataItem, "Address") %> </ td >
Repeater控件使用(含删除,分页功能)      
</ tr >
Repeater控件使用(含删除,分页功能)    
</ ItemTemplate >
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)    
<% --AlternatingItemTemplate描述交替输出行的另一种外观-- %>
Repeater控件使用(含删除,分页功能)    
< AlternatingItemTemplate >
Repeater控件使用(含删除,分页功能)      
< tr  bgcolor ="#e8e8e8" >
Repeater控件使用(含删除,分页功能)        
< td >< asp:CheckBox  ID ="chkItem"  runat ="server"   /></ td >
Repeater控件使用(含删除,分页功能)        
< td >< href ='<%#  "View.aspx?id ="+DataBinder.Eval(Container.DataItem, " CustomerID") % > ' target="_blank">View </ a ></ td >
Repeater控件使用(含删除,分页功能)        
< td >< asp:Label  ID ="lblID"  Text ='<%#  DataBinder.Eval(Container.DataItem, "CustomerID")% > ' runat="server"> </ asp:Label ></ td >
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
< td > <% # DataBinder.Eval(Container.DataItem, "CompanyName") %> </ td >
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
< td > <% # DataBinder.Eval(Container.DataItem, "ContactName") %> </ td >
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
< td > <% # DataBinder.Eval(Container.DataItem, "ContactTitle") %> </ td >
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
< td > <% # DataBinder.Eval(Container.DataItem, "Address") %> </ td >
Repeater控件使用(含删除,分页功能)      
</ tr >
Repeater控件使用(含删除,分页功能)    
</ AlternatingItemTemplate >
Repeater控件使用(含删除,分页功能)    
< FooterTemplate >
Repeater控件使用(含删除,分页功能)     
</ table >
Repeater控件使用(含删除,分页功能)    
</ FooterTemplate >
Repeater控件使用(含删除,分页功能)
</ asp:Repeater >
Repeater控件使用(含删除,分页功能)
< div  style ="background-color:#dedede; width:1006px;" >
Repeater控件使用(含删除,分页功能)    
< asp:Button  ID ="btnDel"  runat ="server"  Text ="删除"  OnClick ="btnDel_Click"   />
Repeater控件使用(含删除,分页功能)   
< asp:label  ID ="lblCurrentPage"  runat ="server" ></ asp:label >
Repeater控件使用(含删除,分页功能)   
< asp:HyperLink  id ="lnkFrist"  runat ="server" > 首页 </ asp:HyperLink >
Repeater控件使用(含删除,分页功能)   
< asp:HyperLink  id ="lnkPrev"  runat ="server" > 上一页 </ asp:HyperLink >
Repeater控件使用(含删除,分页功能)   
< asp:HyperLink  id ="lnkNext"  runat ="server" > 下一页 </ asp:HyperLink >  
Repeater控件使用(含删除,分页功能)   
< asp:HyperLink  id ="lnkEnd"  runat ="server" > 尾页 </ asp:HyperLink >
Repeater控件使用(含删除,分页功能)
</ div >
Repeater控件使用(含删除,分页功能)    
</ form >
Repeater控件使用(含删除,分页功能)
</ body >
Repeater控件使用(含删除,分页功能)
</ html >
后台CS部分代码:
Repeater控件使用(含删除,分页功能)using  System;
Repeater控件使用(含删除,分页功能)
using  System.Data;
Repeater控件使用(含删除,分页功能)
using  System.Configuration;
Repeater控件使用(含删除,分页功能)
using  System.Collections;
Repeater控件使用(含删除,分页功能)
using  System.Web;
Repeater控件使用(含删除,分页功能)
using  System.Web.Security;
Repeater控件使用(含删除,分页功能)
using  System.Web.UI;
Repeater控件使用(含删除,分页功能)
using  System.Web.UI.WebControls;
Repeater控件使用(含删除,分页功能)
using  System.Web.UI.WebControls.WebParts;
Repeater控件使用(含删除,分页功能)
using  System.Web.UI.HtmlControls;
Repeater控件使用(含删除,分页功能)
using  System.Data.SqlClient;
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)
public  partial  class  Repeater : System.Web.UI.Page
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)
{
Repeater控件使用(含删除,分页功能)    PagedDataSource PDS 
= new PagedDataSource();
Repeater控件使用(含删除,分页功能)    
private string ConnStr = ConfigurationManager.AppSettings["dbConnectionString"];
Repeater控件使用(含删除,分页功能)    
private string strsql = "";
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)    
protected void Page_Load(object sender, EventArgs e)
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)    
{
Repeater控件使用(含删除,分页功能)        
if (!this.Page.IsPostBack)
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
{
Repeater控件使用(含删除,分页功能)            
this.bind();
Repeater控件使用(含删除,分页功能)        }

Repeater控件使用(含删除,分页功能)    }

Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)    
private void bind()
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)    
{
Repeater控件使用(含删除,分页功能)        
int TotalCount = 0;//总记录数
Repeater控件使用(含删除,分页功能)
        int TotalPage = 1//总页数
Repeater控件使用(含删除,分页功能)
        
Repeater控件使用(含删除,分页功能)        SqlConnection conn 
= new SqlConnection(ConnStr);
Repeater控件使用(含删除,分页功能)        conn.Open();
Repeater控件使用(含删除,分页功能)        SqlDataAdapter da 
= new SqlDataAdapter("select CustomerID,CompanyName,ContactName,ContactTitle,Address from Customers order by CustomerID desc", conn);
Repeater控件使用(含删除,分页功能)        DataSet ds 
= new DataSet();
Repeater控件使用(含删除,分页功能)        da.Fill(ds, 
"Customers");
Repeater控件使用(含删除,分页功能)        DataView dv 
= ds.Tables[0].DefaultView;
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)        TotalCount 
= dv.Count;
Repeater控件使用(含删除,分页功能)        PDS.DataSource 
= dv;
Repeater控件使用(含删除,分页功能)        conn.Close();
Repeater控件使用(含删除,分页功能)        PDS.AllowPaging 
= true;
Repeater控件使用(含删除,分页功能)        PDS.PageSize 
= 20;
Repeater控件使用(含删除,分页功能)        
int CurPage;
Repeater控件使用(含删除,分页功能)        
if (Request.QueryString["Page"!= null)
Repeater控件使用(含删除,分页功能)        CurPage
=Convert.ToInt32(Request.QueryString["Page"]);
Repeater控件使用(含删除,分页功能)        
else
Repeater控件使用(含删除,分页功能)        CurPage
=1;
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)        
if (TotalCount == 0)
Repeater控件使用(含删除,分页功能)            TotalPage 
= 1;
Repeater控件使用(含删除,分页功能)        
else
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
{
Repeater控件使用(含删除,分页功能)            
if (TotalCount % PDS.PageSize == 0)
Repeater控件使用(含删除,分页功能)                TotalPage 
= TotalCount / PDS.PageSize;
Repeater控件使用(含删除,分页功能)            
else
Repeater控件使用(含删除,分页功能)                TotalPage 
= TotalCount / PDS.PageSize + 1;
Repeater控件使用(含删除,分页功能)        }

Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)        PDS.CurrentPageIndex 
= CurPage-1;
Repeater控件使用(含删除,分页功能)        lblCurrentPage.Text 
= "" + TotalCount.ToString() + "条记录 当前页:" + CurPage.ToString() + "/" + TotalPage;
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)        lnkFrist.NavigateUrl 
= Request.CurrentExecutionFilePath + "?Page=1";
Repeater控件使用(含删除,分页功能)        
if (!PDS.IsFirstPage)
Repeater控件使用(含删除,分页功能)            lnkPrev.NavigateUrl 
= Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)        
if (!PDS.IsLastPage)
Repeater控件使用(含删除,分页功能)            lnkNext.NavigateUrl 
= Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
Repeater控件使用(含删除,分页功能)        lnkEnd.NavigateUrl 
= Request.CurrentExecutionFilePath + "?Page=" + TotalPage;
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)        Repeater1.DataSource
=PDS;
Repeater控件使用(含删除,分页功能)        Repeater1.DataBind();
Repeater控件使用(含删除,分页功能)    }

Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)    
protected void btnDel_Click(object sender, EventArgs e)
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)    
{
Repeater控件使用(含删除,分页功能)        
string ID = "";
Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能)        
for (int i = 0; i < this.Repeater1.Items.Count; i++)
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
{
Repeater控件使用(含删除,分页功能)            CheckBox cbox 
= (CheckBox)this.Repeater1.Items[i].FindControl("chkItem");
Repeater控件使用(含删除,分页功能)            
if (cbox.Checked == true)
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)            
{
Repeater控件使用(含删除,分页功能)                
if (ID == "")
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)                
{
Repeater控件使用(含删除,分页功能)                    ID 
= "'"+((Label)this.Repeater1.Items[i].FindControl("lblID")).Text+"'";
Repeater控件使用(含删除,分页功能)                }

Repeater控件使用(含删除,分页功能)                
else
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)                
{
Repeater控件使用(含删除,分页功能)                    ID 
+= "," + "'" + ((Label)this.Repeater1.Items[i].FindControl("lblID")).Text + "'";
Repeater控件使用(含删除,分页功能)                }
 
Repeater控件使用(含删除,分页功能)            }

Repeater控件使用(含删除,分页功能)        }

Repeater控件使用(含删除,分页功能)        strsql 
= "delete from Customers where CustomerID in (" + ID + ")";
Repeater控件使用(含删除,分页功能)        
try
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
{
Repeater控件使用(含删除,分页功能)            SqlConnection conn 
= new SqlConnection(ConnStr);
Repeater控件使用(含删除,分页功能)            SqlCommand comm 
= new SqlCommand(strsql, conn);
Repeater控件使用(含删除,分页功能)            comm.Connection.Open();
Repeater控件使用(含删除,分页功能)            comm.ExecuteNonQuery();
Repeater控件使用(含删除,分页功能)            comm.Connection.Close();
Repeater控件使用(含删除,分页功能)            System.Web.HttpContext.Current.Response.Write(
"<script language='javascript'>alert('刪除成功!');</script>");
Repeater控件使用(含删除,分页功能)        }

Repeater控件使用(含删除,分页功能)        
catch (System.Data.SqlClient.SqlException E)
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
{
Repeater控件使用(含删除,分页功能)            
throw new Exception(E.Message);
Repeater控件使用(含删除,分页功能)        }

Repeater控件使用(含删除,分页功能)        
finally
Repeater控件使用(含删除,分页功能)Repeater控件使用(含删除,分页功能)        
{
Repeater控件使用(含删除,分页功能)            
if (conn.State == ConnectionState.Open)
Repeater控件使用(含删除,分页功能)                conn.Close();
Repeater控件使用(含删除,分页功能)        }

Repeater控件使用(含删除,分页功能)        
this.bind();
Repeater控件使用(含删除,分页功能)    }

Repeater控件使用(含删除,分页功能)}