分页技术之PageDataSource类

之前给大家介绍了分页技术之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 + "";

        }
posted @ 2014-04-09 18:21  潜心修行  阅读(636)  评论(0编辑  收藏  举报