Data dt = new Data();
        DataSet ds = dt.GetBooks();
        string ntype = ds.Tables[0].Rows[0].ItemArray[4].ToString();
        Session["type"] = ntype;
        #endregion        #region 自定义分页
        int curpage = Convert.ToInt32(this.lblCurrentPage.Text);
        PagedDataSource ps = new PagedDataSource();        ps.DataSource = ds.Tables[0].DefaultView;
        ps.AllowPaging = true; //是否可以分页
        ps.PageSize = 2; //显示的数量
        ps.CurrentPageIndex = curpage - 1; //取得当前页的页码        if (curpage == 1)
        {
            this.lbnFirstPage.Enabled = false;//不显示第一页按钮
            this.lbnPrevPage.Enabled = false;//不显示上一页按钮
        }
        if (curpage == ps.PageCount)
        {
            this.lbnNextPage.Enabled = false;//不显示下一页
            this.lbnLastPage.Enabled = false;//不显示最后一页
        }
        this.lblRecordCount.Text = Convert.ToString(ps.PageCount);
        this.myDropDownList.Items.Clear();
        for (int i = 0; i < Convert.ToInt32(this.lblCurrentPage.Text); i++)
        {
            int pageNumber = i + 1;
            ListItem item = new ListItem("第" + pageNumber.ToString() + "页");
            if (i == Convert.ToInt32(this.lblCurrentPage.Text))
            {
                item.Selected = true;
            }
            myDropDownList.Items.Add(item);
        }        this.MyDataGrid.DataSource = ps;
        this.MyDataGrid.DataBind();
大家帮忙看看,分页记数那出问题了,点上一页饱错!下一页也有问题,点一次成功,在点就不管用了!大家帮帮忙!明天结分!!谢啦

解决方案 »

  1.   

    我是写的一个方法,整个程序记录少的都用的这个,感觉还可以
        public void GetCustomersDataPage(DataList CustomerList, HyperLink lnkPrev, HyperLink lnkNext, Label lblCurrentPage, DataTable ds, int pagecount, HyperLink lnkFirst, HyperLink lnkLast,string ParameterString)
        {
            //对PagedDataSource 对象的相关属性赋值
            PagedDataSource objPds = new PagedDataSource();
            //objPds.DataSource = ds.Tables[0].DefaultView;
            objPds.DataSource = ds.DefaultView;
            objPds.AllowPaging = true;
            objPds.PageSize = pagecount; //指定每页显示的记录数
            int CurPage;        //当前页面从Page查询参数获取        if (HttpContext.Current.Request.QueryString["Page"] != null)
                CurPage = Convert.ToInt32(HttpContext.Current.Request.QueryString["Page"]);
            else
                CurPage = 1;        objPds.CurrentPageIndex = CurPage - 1;
            lblCurrentPage.Text = "页次: " + CurPage.ToString() + "/" + objPds.PageCount + " 每页:" + objPds.PageSize + "条记录 共有:" + ds.Rows.Count + "条记录 总共:" + objPds.PageCount + "页 分页:";        if (!objPds.IsFirstPage)
            {
                lnkPrev.NavigateUrl = HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1) + ParameterString;
                lnkFirst.NavigateUrl = HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=1"+ ParameterString;
            }
                
            if (!objPds.IsLastPage)
                {
                    lnkNext.NavigateUrl = HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1) + ParameterString;
                    lnkLast.NavigateUrl = HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + objPds.PageCount + ParameterString;
                }        //把PagedDataSource 对象赋给控件
            CustomerList.DataSource = objPds;
            CustomerList.DataBind();
        }或许对你有帮助
      

  2.   

    用这个免费开源分页控件吧,不用写那么多代码: http://www.webdiyer.com