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( 0 , new 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( 0 , new 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); } } }
转载于:https://www.cnblogs.com/jiangyuxuan/archive/2007/08/03/842349.html