我想做自定义分页,但不知道页总数怎么求出,页码怎么保存,上一页,下一页怎么传值绑定?
最好能给一个完整的例子。谢了!

解决方案 »

  1.   

    我看你直接下个分页控件就什么都懂了上一页,下一页根据 LABLE 中的值来得出
    如果显示的是第2页("2"在lable中)
    那上一页就是从LABLE中取出2来
    取出这个页码再绑定就//从数据库中取出photo的值并绑定在页面上
        protected void bindPhoto()
        {
    int pageIndex = Convert.ToInt32(this.lblPageIndex.Text.ToString());
            PagedDataSource pds = new PagedDataSource();
            pds.DataSource = SqlHelper.executeDataAdapter("select_photo", CommandType.StoredProcedure, null).Tables[0].DefaultView;
            pds.AllowPaging = true;
            pds.PageSize = 3;
            pds.CurrentPageIndex = pageIndex - 1;//这一句是关键,CurrentPageIndex当前页为LABLE中的值减1,CurrentPageIndex是从0开始的,所以要减1,根据这一句来决定取出CurrentPageIndex中哪一页的值        this.lbtnFirst.Visible = true;
            this.lbtnLast.Visible = true;
            this.lbtnNext.Visible = true;
            this.lbtnFinal.Visible = true;        if (pageIndex == 1)
            {
                this.lbtnLast.Visible = false;
            }
            if (pageIndex == pds.PageCount)
            {
                this.lbtnNext.Visible = false;
            }        this.dlPhoto.DataSource = pds;
            this.dlPhoto.DataKeyField = "id";
            this.dlPhoto.DataBind();}
     //单击上一页的时候改变lable中的值
        protected void lbtnLast_Click(object sender, EventArgs e)
        {
            this.lblPageIndex.Text = Convert.ToString(Convert.ToInt32(this.lblPageIndex.Text) - 1);
            bindPhoto();
        }    //单击下一页的时候改变lable中的值
        protected void lbtnNext_Click(object sender, EventArgs e)
        {
            this.lblPageIndex.Text = Convert.ToString(Convert.ToInt32(this.lblPageIndex.Text) + 1);
            bindPhoto();
        }
      

  2.   

    http://www.webdiyer.com/AspNetPager/default.aspx
      

  3.   


    pageIndex == pds.PageCount//这一句含义:如果lable中的值也就是pageIndex等于pds.PageCount(显示的总页数)PageCount没有从0开始这一说,他的值是所有的页数
      

  4.   

    if(记录总数%每页记录数 != 0)
    {
       页总数 = 记录总数/每页记录数 +1;
    }
    else
       页总数 = 记录总数/每页记录数;
    页码一般保存在url中,如:a.asp?page=5
    上下页也是这样:<a href="a.asp?page=5">下一页</a>
    <a href="a.asp?page=4">上一页</a>
    这些方法在asp中最常用到,asp.net中同样适用。
    asp.net中的分页方式更为多样,这里就不列举了。
    上面的算是 抛砖引玉 吧,楼主可以去搜索 "asp.net分页"有很多的详细讲解!
      

  5.   

    CSDN的回复刷新速度应该提高了!!
      

  6.   

    我的URL分页
    using System;
    using System.Text;namespace CpushIMS
    {
        public class PageList
        {
            //fileName 文件名 不带后缀
            public string FileName { get; set; }
            //文件名后缀
            public string FileExt { get; set; }
            //分页文件名格式 不包含文件名
            string PageLink;
            //分页连接html格式
            public string LinkHtml { get; set; }        //首页 上一页 下一页 尾页 文字
            public string IndexText { get; set; }
            public string PrevText { get; set; }
            public string NextText { get; set; }
            public string EndText { get; set; }        //页码显示数量
            public int ListSize { get; set; }
            //当前页索引值
            public int PageIndex { get; set; }
            public int PageSize { get; set; }
            public int PageCount { get; set; }
            public int RecordCount { get; set; } public bool isShowPageList{get;set;}

            public PageList()
            {
                FileExt = ".aspx";
                ListSize = 10;
                IndexText = "首页";
                PrevText = "上一页";
                NextText = "下一页";
                EndText = "尾页";            LinkHtml = "{0}\n";
                PageSize = 20;
                PageIndex = 1;
    isShowPageList=true;
            }        public string GetHtml()
            {            PageCount = RecordCount / PageSize;
                if (RecordCount % PageSize > 0)
                    PageCount++;
                if (PageIndex > PageCount)
                    PageIndex = PageCount;
                PageLink = FileName + "_{page}" + FileExt;            StringBuilder html = new StringBuilder();
                if (PageCount <= 1)
                    return "";
                //第一页的时候不显示首页和上一页
                if (PageIndex > 1)
                {
                    html.Append(string.Format(LinkHtml, "<a href=\"" + FileName + FileExt + "\">" + IndexText + "</a>"));
                    if (PageIndex - 1 > 1)
                        html.Append(string.Format(LinkHtml, "<a href=\"" + PageLink.Replace("{page}", (PageIndex - 1).ToString()) + "\">" + PrevText + "</a>"));
                }


    //显示1 2 3 4 5 6 这些页码列表
                if (isShowPageList)
                {
                    int LoopSize;//循环上限
                    string PageText;//连接名称                //listindex 当前页码列表的索引
                    int ListIndex = 0;
                    if (PageIndex % ListSize > 0)
                        ListIndex = PageIndex / ListSize;
                    else
                        ListIndex = PageIndex / ListSize - 1;                if (ListSize > PageCount) //总页数不到一个页码数
                        LoopSize = PageCount;
                    else
                        LoopSize = ListSize;
                    
                    //最后一页的循环上限
                    if ((ListIndex + 1) * ListSize >= PageCount && PageCount % ListSize > 0)
                        LoopSize = PageCount % ListSize;                for (int i = 1; i <= LoopSize; ++i)
                    {                    PageText = (i + ListIndex * ListSize).ToString();                    //是否为当前页
                        if (ListIndex * ListSize + i != PageIndex)
                            html.Append(string.Format(LinkHtml, "<a href=\"" + PageLink.Replace("{page}", PageText) + "\">" + PageText + "</a>"));
                        else
                            html.Append(string.Format(LinkHtml, "<a class=\"curPage\">" + PageText + "</a>"));
                    }                if (LoopSize == ListSize && PageCount > ListSize)
                    {
                        html.Append(string.Format(LinkHtml, "<a href=\"" + PageLink.Replace("{page}", ((ListIndex + 1) * ListSize + 1).ToString()) + "\">...</a>"));
                    }
                }            //最后一页不显示下一页和尾页
                if (PageIndex < PageCount)
                {
                    if (PageIndex + 1 < PageCount)
                        html.Append(string.Format(LinkHtml, "<a href=\"" + PageLink.Replace("{page}", (PageIndex + 1).ToString()) + "\">" + NextText + "</a>"));
                    html.Append(string.Format(LinkHtml, "<a href=\"" + PageLink.Replace("{page}", PageCount.ToString()) + "\">" + EndText + "</a>"));
                }            return html.ToString();
            }
        }
    }