之前给大家介绍了分页技术之Gridview控件,今天给大家介绍另外一种分页技术,采用PageDataSource类 + Repeater控件来实现。
前台只需要拖出一个Repeater控件来绑定要显示数据即可。
后台代码的实现具体步骤如下:
第一步:连接数据库获取要显示的内容
//连接数据库及将数据封装到一个数据集中
Db db = new Db();
DataSet ds = db.GetDataSet ( sql );
//将DataSet绑定到PageDataSource
PagedDataSource ps = new PagedDataSource();
ps.DataSource = ds.Tables[0].DefaultView;
第二步:设置PageDataSource相关属性
//设置属性为允许分页
ps.AllowPaging = true;
//获取当前页面数
int CurPage;
if (Request.QueryString["Page"] != null) //当前请求页面
CurPage = Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage = 1;
//每个页面显示的条数
ps.PageSize = 20;
//求数据的总数
allmsg.Text = ps.DataSourceCount.ToString();
ps.CurrentPageIndex = CurPage - 1;
//求总页数
allpages.Text = ps.PageCount.ToString();
nowpage.Text = CurPage.ToString();
第三步:将数据源绑定到Repeater控件
//将数据源与控件绑定
Repeater1.DataSource = ps;
Repeater1.DataBind();
第四步:设置‘上一页’、‘下一页’、‘首页’、‘尾页’按钮的链接URL
if (!ps.IsFirstPage)
{
//首页页
firstpage.NavigateUrl = Request.CurrentExecutionFilePath +"?Page=1&id=" + articleid + "";
//上一页
divpage.NavigateUrl = Request.CurrentExecutionFilePath +"?Page="+Convert.ToString(CurPage - 1)+"" + "&id="+articleid+"";
}
if (!ps.IsLastPage)
{
//下一页
nextpage.NavigateUrl=Request.CurrentExecutionFilePath + "?Page="+ Convert.ToString(CurPage + 1)+"" + "&id="+articleid+"";
// 尾页
endpage.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(ps.PageCount) + "" + "&id=" + articleid + "";
}