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

时间:2021-10-23 13:27:32

代码如下:


 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();

 

相关文章