您的位置:首页 > 编程语言 > ASP

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

2008-01-08 16:26 585 查看
原文地址: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(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);


}




}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐