asp.net中使用repeater和PageDataSource搭配实现分页代码

  

复制代码 代码如下:

  PagedDataSource objPage = new PagedDataSource();

  DataView dv = bllBook.GetListByState("", true);

  //设置数据源

  objPage.DataSource =dv ;

  //允许分页

  objPage.AllowPaging = true;

  //设置每页显示的项数

  objPage.PageSize = 10;

  //定义变量用来保存当前页索引

  int CurPage;

  int RecordCount;

  int PageCount = objPage.PageCount;

  RecordCount = dv.Count;

  //判断是否具有页面跳转的请求

  if (Request.QueryString["Page"] != null)

  {

  CurPage = Convert.ToInt32(Request.QueryString["Page"]);

  }

  else

  {

  CurPage = 1;

  }

  //设置当前页的索引

  objPage.CurrentPageIndex = CurPage - 1;

  //显示状态信息

  lblCurPage.Text = "第  " + CurPage.ToString() + "/" + PageCount.ToString() + "页    共  " + RecordCount.ToString() + " 记录 ";

  //如果当前页面不是首页

  if (!objPage.IsFirstPage)

  //定义 "上一页 "超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值

  {

  lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);

  lnkFirst.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);

  }

  //如果当前页面不是最后一页

  if (!objPage.IsLastPage)

  //定义 "下一页 "超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值

  {

  lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);

  lnkLast.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(PageCount);

  }

  //进行数据绑定

  Repeater1.DataSource = objPage;

  Repeater1.DataBind();