[Asp.Net]GridView,DataList,Repeater的通用分页【转载】

原文地址:http://www.cnblogs.com/Ustonet/archive/2006/12/27/604802.html

using  System;
using  System.Collections;
using  System.ComponentModel;
using  System.Data;
using  System.Data.SqlClient;
using  System.Web;
using  System.Web.SessionState;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.HtmlControls;

namespace  ustonetdonet.DotNetPagedData
{
 
///  <summary>
    
///  本类提供GridView,DataList,Repeater的通用分页
    
///  参考了NetFire(Fire.Rolland.Han)http://netfire.my.gsdn.net/2005/04/04/2945/
    
///  
    
///  
    
///     使用方法:
    
///     1.在引用里添加dll的引用
    
///  2.using ustonetdonet.DotNetPagedData;
    
///  3.private DotNetPagedData pager;
    
///  4.page_load()
    
///  if(!IsPostBack)   
    
///  {    
    
///     pager=new DotNetPagedData();
    
///     pager.PagedPanel=this.pagedPanel;    
    
///     pager.GridView = this.GridView1;  //如果是DataGrid则添加此项
    
///     pager.Datalist=this.DataList1;    //如果是DataList则添加此项  
    
///     pager.Repeater=this.Repeater1;    //如果是Repeater则添加此项  
    
///     pager.Lnknext=this.lnkNext;    
    
///        pager.Lnkprev=this.lnkPrev;    
    
///        pager.Lnklast=this.lnklast;    
    
///        pager.Lnkfist=this.lnkfist;    
    
///        pager.Pagenum=this.Pagenum;    
    
///        pager.Pagecount=this.Pagecount;    
    
///        pager.List=this.ddl_jump; 
    
///        //简单示例定义DataSet外部定义,同样也可以采用执行sqlstr,并填充给DataSet,本类也重载了datapage(),详细信息可查看详细代码       
    
///     DataSet ds=new DataSet();    
    
///     ds.ReadXml(Server.MapPath("test.xml"));    
    
///     pager.datapage(ds,5);   
    
///  }  
    
///  
    
///  // DropDownList必须设定为AutoPostBack,下面添加它的事件
    
///  5.private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)  
    
///  {      
    
///     pager=new DotNetPagedData();   
    
///     pager.List=this.DropDownList1;   
    
///     pager.Lnkjump=this.HyperLink3;   
    
///     pager.select();              
    
///  }
    
///  </summary>



    
public class DotNetPagedData : System.Web.UI.Page
    
{
        
private System.Web.UI.WebControls.GridView gridview = null;
        
private System.Web.UI.WebControls.DataList datalist = null;
        
private System.Web.UI.WebControls.Repeater repeater = null;
        
private System.Web.UI.WebControls.HyperLink lnknext;
        
private System.Web.UI.WebControls.HyperLink lnkprev;
        
private System.Web.UI.WebControls.HyperLink lnkfist;
        
private System.Web.UI.WebControls.HyperLink lnklast;
        
private System.Web.UI.WebControls.HyperLink lnkjump;
        
private System.Web.UI.WebControls.Label pagenum;
        
private System.Web.UI.WebControls.Label pagecount;
        
private System.Web.UI.WebControls.Panel pagedPanel;
        
private System.Web.UI.WebControls.DropDownList list;

        
public DotNetPagedData()
        
{
            
//  
            
// TODO: 在此处添加构造函数逻辑   
            
//  
        }


        
public System.Web.UI.WebControls.GridView GridView
        
{
            
get
            
{
                
return this.gridview;
            }

            
set
            
{
                
this.gridview = value;
            }

        }


        
public System.Web.UI.WebControls.DataList Datalist
        
{
            
get
            
{
                
return this.datalist;
            }

            
set
            
{
                
this.datalist = value;
            }

        }


        
public System.Web.UI.WebControls.Repeater Repeater
        
{
            
get
            
{
                
return this.repeater;
            }

            
set
            
{
                
this.repeater = value;
            }

        }


        
public System.Web.UI.WebControls.HyperLink Lnkprev
        
{
            
get
            
{
                
return this.lnkprev;
            }

            
set
            
{
                
this.lnkprev = value;
            }

        }


        
public System.Web.UI.WebControls.HyperLink Lnknext
        
{
            
get
            
{
                
return this.lnknext;
            }

            
set
            
{
                
this.lnknext = value;
            }

        }


        
public System.Web.UI.WebControls.HyperLink Lnkfist
        
{
            
get
            
{
                
return this.lnkfist;
            }

            
set
            
{
                
this.lnkfist = value;
            }

        }


        
public System.Web.UI.WebControls.HyperLink Lnklast
        
{
            
get
            
{
                
return this.lnklast;
            }

            
set
            
{
                
this.lnklast = value;
            }

        }


        
public System.Web.UI.WebControls.HyperLink Lnkjump
        
{
            
get
            
{
                
return this.lnkjump;
            }

            
set
            
{
                
this.lnkjump = value;
            }

        }


        
public System.Web.UI.WebControls.Label Pagenum
        
{
            
get
            
{
                
return this.pagenum;
            }

            
set
            
{
                
this.pagenum = value;
            }

        }


        
public System.Web.UI.WebControls.Label Pagecount
        
{
            
get
            
{
                
return this.pagecount;
            }

            
set
            
{
                
this.pagecount = value;
            }

        }


        
public System.Web.UI.WebControls.DropDownList List
        
{
            
get
            
{
                
return this.list;
            }

            
set
            
{
                
this.list = value;
            }

        }


        
public System.Web.UI.WebControls.Panel PagedPanel
        
{
            
get
            
{
                
return this.pagedPanel;
            }

            
set
            
{
                
this.pagedPanel = value;
            }

        }


        
//针对一般数据邦定,不执行sqlstr
        public void datapage(DataSet ds, int pagenum)
        
{
            PagedDataSource objPds 
= new PagedDataSource();
            objPds.AllowPaging 
= true;
            
//每页显示数目   
            objPds.PageSize = pagenum;
            
//指定数据源   
            objPds.DataSource = ds.Tables[0].DefaultView;
            
int CurPage;
            
//绑定dropdownlist数据   
            for (int i = 1; i <= objPds.PageCount; i++)
            
{
                
this.list.Items.Add(i.ToString());
            }

            
this.list.Items.Insert(0new ListItem("页数"""));
            
//确定当前页数   
            if (System.Web.HttpContext.Current.Request.Params["Page"!= null)
            
{
                CurPage 
= Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]);
            }

            
else
            
{
                CurPage 
= 1;
            }


            objPds.CurrentPageIndex 
= CurPage - 1;
            
if (objPds.PageCount > 1)
            
{
                pagedPanel.Visible 
= true;
            }

            
else
            
{
                pagedPanel.Visible 
= false;
            }

            
//显示当前页数   
            this.pagenum.Text = "当前:" + CurPage.ToString() + "";
            
//显示总共页数   
            this.pagecount.Text = "共有" + objPds.PageCount + "";
            
//下一页   
            if (!objPds.IsLastPage)
            
{
                lnknext.NavigateUrl 
= System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
            }

            
//上一页   
            if (!objPds.IsFirstPage)
            
{
                lnkprev.NavigateUrl 
= System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
            }

            
//第一页   
            if (CurPage != 1)
            
{
                lnkfist.NavigateUrl 
= System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
            }

            
//最后一页   
            if (CurPage != objPds.PageCount)
            
{
                lnklast.NavigateUrl 
= System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(objPds.PageCount);
            }

            
//绑定gridview   
            if (this.gridview != null)
            
{
                gridview.DataSource 
= objPds;
                gridview.DataBind();
            }

            
//绑定datalist   
            if (this.datalist != null)
            
{
                datalist.DataSource 
= objPds;
                datalist.DataBind();
            }

            
//绑定repeater   
            if (this.repeater != null)
            
{
                repeater.DataSource 
= objPds;
                repeater.DataBind();
            }

        }


        
//重载,针对执行sqlstr
        public void datapage(string sqlcon, string sqlstr, int pagenum)
        
{
            SqlConnection objConn 
= new SqlConnection(sqlcon);
            SqlDataAdapter objCommand 
= new SqlDataAdapter(sqlstr, objConn);
            DataSet ds 
= new DataSet();
            objCommand.Fill(ds);
            PagedDataSource objPds 
= new PagedDataSource();
            objPds.AllowPaging 
= true;
            
//每页显示数目   
            objPds.PageSize = pagenum;
            
//指定数据源   
            objPds.DataSource = ds.Tables[0].DefaultView;
            
int CurPage;
            
//绑定dropdownlist数据   
            for (int i = 1; i <= objPds.PageCount; i++)
            
{
                
this.list.Items.Add(i.ToString());
            }

            
this.list.Items.Insert(0new ListItem("页数"""));
            
//确定当前页数   
            if (System.Web.HttpContext.Current.Request.Params["Page"!= null)
            
{
                CurPage 
= Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]);
            }

            
else
            
{
                CurPage 
= 1;
            }


            objPds.CurrentPageIndex 
= CurPage - 1;
            
if (objPds.PageCount > 1)
            
{
                pagedPanel.Visible 
= true;
            }

            
else
            
{
                pagedPanel.Visible 
= false;
            }

            
//显示当前页数   
            this.pagenum.Text = "当前:" + "" + CurPage.ToString() + "";
            
//显示总共页数   
            this.pagecount.Text = "共有" + objPds.PageCount + "";
            
//下一页   
            if (!objPds.IsLastPage)
            
{
                lnknext.NavigateUrl 
= System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
            }

            
//上一页   
            if (!objPds.IsFirstPage)
            
{
                lnkprev.NavigateUrl 
= System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
            }

            
//第一页   
            if (CurPage != 1)
            
{
                lnkfist.NavigateUrl 
= System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
            }

            
//最后一页   
            if (CurPage != objPds.PageCount)
            
{
                lnklast.NavigateUrl 
= System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(objPds.PageCount);
            }

            
//绑定gridview   
            if (this.gridview != null)
            
{
                gridview.DataSource 
= objPds;
                gridview.DataBind();
            }

            
//绑定datalist   
            if (this.datalist != null)
            
{
                datalist.DataSource 
= objPds;
                datalist.DataBind();
            }

            
//绑定repeater   
            if (this.repeater != null)
            
{
                repeater.DataSource 
= objPds;
                repeater.DataBind();
            }

        }


        
//dropdownlist选择改变  
        public void select()
        
{
            
this.lnkjump.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(this.list.SelectedItem.Value);
        }


    }

}
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值