数字分页

下面为大家奉上我自己写的一个数字分页代码,供初学者参考,里面不乏漏洞,请大家指正。

分页技术分三块,前台页面,后台程序,CSS样式。

1. 前台页面。该页面只需放置一个DIV在需要显示页码的地方即可,代码如下:

<div id="pagediv" runat="server" />

2. 后台程序。C#编写,已经写成一个函数,可以将此函数放置在公共页面共调用,代码如下:

public void Paging(int totalrecord, int PageSize, int DigitNo, Control pagediv, Control rpt,string table,string id)
    {
        int CurrentPage, PageStart, PageEnd, TotalPage;
        //****************************************//计算总页数
        int pn1 = totalrecord / PageSize, pn2 = totalrecord % PageSize;
        if (pn2 != 0)
            TotalPage = pn1 + 1;
        else
            if (pn1 == 0)
                TotalPage = 1;
            else
                TotalPage = pn1;
        //****************************************
        if (Request.QueryString["page"] == null)//获取当前页码
            CurrentPage = 1;
        else
            CurrentPage = Convert.ToInt16(Request.QueryString["page"]);

        PageStart = 1;//起始数字逻辑判断
        if (CurrentPage >= DigitNo + 2)
            PageStart = CurrentPage - DigitNo;

        PageEnd = CurrentPage + DigitNo;//结束数字逻辑判断
        if (PageEnd > TotalPage + 1)
            PageEnd = TotalPage + 1;

        if (CurrentPage != 1)
        {
            HyperLink FP = new HyperLink();//生成首页文字按钮
            FP.Text = "首页"; FP.Style["color"] = "#06C";
            FP.NavigateUrl = "?page=1";
            HyperLink PP = new HyperLink();//生成上一页文字按钮
            PP.Text = "上一页"; PP.Style["color"] = "#06C";
            PP.NavigateUrl = "?page=" + (CurrentPage - 1);
            pagediv.Controls.Add(FP);//将文字分页按钮装入pagediv容器
            pagediv.Controls.Add(PP);
        }

        for (int i = PageStart; i < PageEnd; i++)//生成中间数字按钮,并进行相关判断
        {
            HyperLink no = new HyperLink();
            no.Text = i.ToString();
            no.NavigateUrl = "?page=" + i;
            no.CssClass = "pagediv";
            if (i == CurrentPage)
            {
                no.Enabled = false;
                no.CssClass = "current";
            }
            pagediv.Controls.Add(no);//将数字分页按钮装入pagediv容器
        }

        if (CurrentPage != TotalPage)
        {
            HyperLink LP = new HyperLink();//生成尾页文字按钮
            LP.Text = "尾页"; LP.Style["color"] = "#06C";
            LP.NavigateUrl = "?page=" + TotalPage;
            HyperLink NP = new HyperLink();//生成下一页文字按钮
            NP.Text = "下一页"; NP.Style["color"] = "#06C";
            NP.NavigateUrl = "?page=" + (CurrentPage + 1);
            pagediv.Controls.Add(NP);//将文字分页按钮装入pagediv容器
            pagediv.Controls.Add(LP);
        }
        //绑定数据库******************************降序排列
        int StartIndex = (CurrentPage - 1) * PageSize + 1;
        Repeater repeater = (Repeater)rpt;
        repeater.DataSource = DT("select top " + PageSize + " * from "+table+" where "+id+" <= (select min("+id+") from (select top " + StartIndex + " " + id + "  from "+table+" order by "+id+" desc)) order by "+id+" desc");
        repeater.DataBind();
    }

3. CSS样式。对pagediv空间的样式定义,如下:

    #pagediv{text-align:right;width:98%;margin:10px 20px 20px 0}
    #pagediv a{float:right;padding:5px 10px 5px 10px;margin:5px;border:1px solid #dde7c5;text-decoration:none;color:#06C;display:block;}
    #pagediv a:link{}
    #pagediv a:visited{color:#f60;}
    #pagediv a:hover{background-color:#ebebeb;}
    #pagediv a:active{}
    .current{padding:5px 10px 5px 10px;margin:5px;color:#000;font-weight:bold;text-decoration:none;display:block;}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值