ASP.NET GridView,DataList,Repeater的通用分页 (C#)

发布时间:2007年10月17日      浏览次数:3217 次
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);
}
}
}
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!