星期零

技术改变生活,分享让我们快乐!
随笔 - 159, 文章 - 0, 评论 - 234, 阅读 - 44万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

cPage分页源码,分享给大家,可作参考

Posted on   weekzero  阅读(427)  评论(0编辑  收藏  举报

cPage是asp.net分页控件,也可以叫做分页组件,更确切的应该叫做分页模块,也或者叫做分页通用代码。

cPage,版本3.2,源码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
using System;
 
namespace cPage
{
    /// <summary>
    /// 分页方法
    /// </summary>
    public class mPage
    {
        /// <summary>
        /// 分页处理
        /// </summary>
        /// <param name="recordCount">记录总数</param>
        /// <param name="pageSize">每页记录数</param>
        /// <param name="pageNum">中间页码数</param>
        /// <param name="pageIndex">当前页码</param>
        /// <param name="beginIndex">返回的首记录标识</param>
        /// <param name="endIndex">返回的尾记录标识</param>
        /// <param name="clink">链接地址</param>
        /// <returns></returns>       
        public static string getPage(int recordCount, int pageSize, int pageNum, int pageIndex, out int beginIndex, out int endIndex, string clink)
        {
            int pcount = recordCount / pageSize;
            if (recordCount % pageSize > 0)
                pcount = pcount + 1;
            if (pageIndex < 1) pageIndex = 1;
            if (pageIndex > pcount) pageIndex = pcount;
 
            beginIndex = pageSize * (pageIndex - 1) + 1;
            endIndex = pageSize * pageIndex;
 
            int num = pageNum;    //中间显示页码数量
 
            string str = "";
 
            str = str + "共<span class='pagecolorc'>" + recordCount + "</span>条记录 <span  class='pagecolorc'>" + pageIndex + "</span> / <span  class='pagecolorc'>" + pcount + "</span> 页  ";
 
            if (pcount > 1)
            {
 
                int wzleft, wzright, wzpagecount, wzcurrentpage, wzpagecountleft;
                wzcurrentpage = pageIndex;
                wzpagecount = pcount;
 
                if (wzcurrentpage < num)
                    wzleft = 0;
                else
                    wzleft = wzcurrentpage / num;
 
                wzright = wzcurrentpage % num;
 
                if (wzright == 0)
                    wzleft = wzleft - 1;
 
                if (wzcurrentpage - 1 > 0)
                    str = str + " <a class='pagecolor pagenum' href='" + clink.Replace("[#p#]", (wzcurrentpage - 1).ToString()) + "' title='上一页'>上一页</a> ";
 
                if (wzcurrentpage > num)
                {
                    if (wzcurrentpage != 1 && wzcurrentpage > num)
                        str = str + " <a class='pagecolor pagenum' href='" + clink.Replace("[#p#]","1") + "'>1</a> ";
 
                    str = str + " <a class='pagecolor pagenum' href='" + clink.Replace("[#p#]", (wzleft * num).ToString()) + "' title='上一组'>...</a> ";
                }
 
                for (int i = 1; i <= num; i++)
                {
                    if (wzleft * num + i == wzcurrentpage)
                        str = str + " <a class='pagecolorc pagecur'>" + (wzleft * num + i) + "</a> ";
                    else
                        str = str + " <a class='pagecolor pagenum' href='" + clink.Replace("[#p#]", (wzleft * num + i).ToString()) + "'>" + (wzleft * num + i) + "</a> ";
 
                    if (wzleft * num + i == wzpagecount)
                        break;
                }
 
                wzpagecountleft = wzpagecount / num;
 
                if (wzpagecount % num == 0)
                    wzpagecountleft = wzpagecountleft - 1;
 
                if (wzleft < wzpagecountleft)
                {
                    str = str + " <a class='pagecolor pagenum' href='" + clink.Replace("[#p#]", (wzleft * num + (pageNum + 1)).ToString()) + "' title='下一组'>...</a> ";
 
                    if (wzcurrentpage != wzpagecount && wzpagecount > num)
                        str = str + " <a class='pagecolor pagenum' href='" + clink.Replace("[#p#]", wzpagecount.ToString()) + "'>" + wzpagecount + "</a> ";
                }
 
                if (wzcurrentpage + 1 <= pcount)
                    str = str + " <a class='pagecolor pagenum' href='" + clink.Replace("[#p#]", (wzcurrentpage + 1).ToString()) + "' title='下一页'>下一页</a> ";
 
            }
 
            return str;
        }
 
    }
}

将以上代码添加到mPage.cs文件内,编译成dll就可以使用了。

也可以点击这里下载

也可以站内下载,点这里

版权所有,bubufx,禁止转载!

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2007-12-19 图片放大镜的js实现,支持IE和Firefox
点击右上角即可分享
微信分享提示