在处理分页前,假定已经将所要显示的数据读出,存放到实例名为MyDataSet这样一个DataSet类型数据中,另外页面中有几个用来显示页面链接信息的HyperLink,主要有
LinkFirstPage:HyperLink型 首页链接
LinkPrePage: HyperLink型 前页链接
LinkLastPage:HyperLink型 末页链接
LinkNextPage:HyperLink型 后页链接
这里我只说一下这四个链接的实现方法,至于其他的像列表当前页附近的页面链接,页面跳转等就不讲了,实现方法类似,如果想要与我讨论的,欢迎联系我。
PagedDataSource MyPagedDS = new PagedDataSource(); //声明一个新的PagedDataSource实例MyPagedDS
MyPagedDS.DataSource = MyDataSet.Tables[0].DefaultView; //给MyPagedDS设置数据源
MyPagedDS.AllowPaging = true; //允许分页
MyPagedDS.PageSize = 5; //每页的记录数
//得到当前要显示的页面的页码
int CurPage = 1;
if(Request["page"] != null)
try
{
CurPage = Convert.ToInt32(Convert.ToString(Request["page"]));
}
catch
{
CurPage = 1;
}
MyPagedDS.CurrentPageIndex = CurPage-1;
//---------------------------------------------------------------------------
//显示相关信息
//显示当前页及总页数
this.LabelCurrPage.Text = CurPage + "/" + MyPagedDS.PageCount;
//首页链接,上一页链接
if(!MyPagedDS.IsFirstPage)
{
this.LinkFirstPage.Visible=true;
this.LinkFirstPage.NavigateUrl ="page=1";
this.LinkPrePage.Visible = true;
this.LinkPrePage.NavigateUrl = "?page=" + Convert.ToString(CurPage-1);
}
else
{
this.LinkFirstPage.Visible=false;
this.LinkPrePage.Visible = false;
}
//末页链接,下一页链接
if(!MyPagedDS.IsLastPage)
{
this.LinkLastPage.Visible=true;
this.LinkLastPage.NavigateUrl = "?page=" + Convert.ToString(MyPagedDS.PageCount);
this.LinkNextPage.Visible = true;
this.LinkNextPage.NavigateUrl = "?page=" + Convert.ToString(CurPage+1);
}
else
{
this.LinkLastPage.Visible=false;
this.LinkNextPage.Visible = false;
}
//============================================== = = = = ======================================
//Repeater绑定
this.RepeaterBlog.DataSource = MyPagedDS;
this.RepeaterBlog.DataBind();