`

分页底层实现(超原理)

 
阅读更多

--样式

.paginator
{
    font: 12px Arial, Helvetica, sans-serif;
    padding: 10px 20px 10px 0;
    margin: 0px;
}

.paginator a
{
    border: solid 1px #ccc;
    color: #0063dc;
    cursor: pointer;
    text-decoration: none;
}

.paginator a:visited
{
    padding: 1px 6px;
    border: solid 1px #ddd;
    background: #fff;
    text-decoration: none;
}

.paginator .cpb
{
    border: 1px solid #F50;
    font-weight: 700;
    color: #F50;
    background-color: #ffeee5;
}

.paginator a:hover
{
    border: solid 1px #F50;
    color: #f60;
    text-decoration: none;
}

.paginator a, .paginator a:visited, .paginator .cpb, .paginator a:hover
{
    float: left;
    height: 16px;
    line-height: 16px;
    min-width: 10px;
    _width: 10px;
    margin-right: 5px;
    text-align: center;
    white-space: nowrap;
    font-size: 12px;
    font-family: Arial,SimSun;
    padding: 0 3px;
}

--分页代码实现

//参数分别为一页多少条数据,当前页,一共多少条

  public static string ShowPageNavigate(int pageSize, int currentPage, int totalCount)
        {
            string redirectTo = "";
            pageSize = pageSize == 0 ? 3 : pageSize;
            var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1); //总页数
            var output = new StringBuilder();
            if (totalPages > 1)
            {
                if (currentPage != 1)
                {//处理首页连接
                    output.AppendFormat("<a class='pageLink' href='{0}?pageIndex=1&pageSize={1}'>首页</a> ", redirectTo, pageSize);
                }
                if (currentPage > 1)
                {//处理上一页的连接
                    output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>上一页</a> ", redirectTo, currentPage - 1, pageSize);
                }
                else
                {
                    // output.Append("<span class='pageLink'>上一页</span>");
                }

                output.Append(" ");
                int currint = 5;
                for (int i = 0; i <= 10; i++)
                {//一共最多显示10个页码,前面5个,后面5个
                   
                    if ((currentPage + i - currint) >= 1 && (currentPage + i - currint) <= totalPages)
                    {
                        if (currint == i)
                        {//当前页处理
                            //output.Append(string.Format("[{0}]", currentPage));
                            output.AppendFormat("<a class='cpb' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage, pageSize, currentPage);
                        }
                        else
                        {//一般页处理
                            output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage + i - currint, pageSize, currentPage + i - currint);
                        }
                    }
                    output.Append(" ");
                }
                if (currentPage < totalPages)
                {//处理下一页的链接
                    output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>下一页</a> ", redirectTo, currentPage + 1, pageSize);
                }
                else
                {
                    //output.Append("<span class='pageLink'>下一页</span>");
                }
                output.Append(" ");
                if (currentPage != totalPages)
                {
                    output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>末页</a> ", redirectTo, totalPages, pageSize);
                }
                output.Append(" ");
            }
            output.AppendFormat("第{0}页 / 共{1}页", currentPage, totalPages);//这个统计加不加都行
            return output.ToString();
        }

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Mader.SVGA大屏写点精简汇编(超数值分页法).rar

    《Mader.SVGA大屏写点精简汇编(超数值分页法)》是针对计算机图形显示技术,特别是SVGA(Super Video Graphics Array)显示模式的一种编程实践。汇编语言是计算机底层编程的基础,它允许程序员直接控制硬件资源,从而...

    Mader.SVGA写点精简汇编(超数值分页法一)

    《Mader.SVGA写点精简汇编(超数值分页法一)》这篇文章主要讲解了在图形显示系统中,如何使用精简的汇编语言实现SVGA(Super Video Graphics Array)屏幕上的像素点绘制,特别介绍了超数值分页法这一技术。...

    Mader.SVGA大屏写点汇编程序(超数值四寄存器分页法)3.0

    《Mader.SVGA大屏写点汇编程序(超数值四寄存器分页法)3.0》是一款专为处理SVGA(Super Video Graphics Array)大屏幕显示的汇编语言程序,采用创新的超数值四寄存器分页法进行设计。此程序的核心在于高效地控制显示...

    Mader.SVGA大屏跨页像素写点汇编程序(超数值分页法)

    【Mader.SVGA大屏跨页像素写点汇编程序(超数值分页法)】...总的来说,Mader的程序和相关文件展示了底层硬件控制、高级图形处理和内存管理的深度结合,对于理解计算机系统的内部工作原理和优化图形性能具有很高的价值。

    一个操作系统的实现(完整目录-超清晰)

    标签 "C语言" 和 "C++" 表明该教程可能主要通过这两种编程语言来阐述操作系统的底层实现。C语言是编写操作系统常见的语言,因为它提供了对硬件的低级访问和高效性能。C++则常用于构建更复杂、面向对象的系统软件,...

    高清深入浅出MyBatis技术原理与实战(超清晰)

    《高清深入浅出MyBatis技术原理与实战》是一本深度剖析MyBatis框架的书籍,旨在帮助读者全面理解MyBatis的使用方法、优化策略以及底层架构。这本书覆盖了从基础到高级的各种主题,适合不同层次的开发人员学习。 ...

    linux内核原理详解

    - **汇编语言**:直接对应机器指令,用于编写底层程序。 - **C编程语言**:高级语言,易于学习,效率高,被广泛应用于系统级编程。 - **编译器**:将源代码转换为机器码的工具。 - **连接程序**:将多个目标文件...

    linux原理与应用

    ### Linux原理与应用知识点概述 #### 一、硬件基础 **1.1 CPU** - **定义**: 中央处理器(Central Processing Unit),是计算机的核心部件之一,负责执行指令。 - **功能**: 解释计算机指令以及处理计算机软件传来...

    《分布式系统原理与范型》答案

    ### 分布式系统原理与范型知识点解析 #### 一、中间件的角色 **知识点**:中间件在分布式系统中的作用及其目标。 **解析**:中间件作为一种软件层,其核心目的是提高分布式系统的透明性和易用性。它通过提供一组...

    分布式系统原理与范型课后习题答案.doc

    从给定的文档标题、描述、标签以及部分内容中,我们可以提炼出关于分布式系统的基本概念、原理及相关的技术问题。以下是对这些知识点的详细解析: ### 分布式系统基础概念 #### 1. 中间件的角色 中间件在分布式...

    分布式系统原理与范型课后习题答案

    分布式系统原理与范型课程的习题答案涵盖了多个核心概念,包括中间件、透明性、故障处理、开放性、可扩展性以及分布式系统的不同架构。以下是这些知识点的详细解释: 1. **中间件**:在分布式系统中,中间件扮演着...

    高大上的超级列表框3.0【仿报表控件的功能】-易语言

    "超级列表框3.0"注重代码的简洁性,使得开发者能更专注于业务逻辑而非底层实现。其内部已经封装了许多复杂的操作,如数据筛选、排序、分页等,只需几行代码即可完成。这种设计不仅减少了出错的可能性,还使得代码...

    超使用的AJAX工具包

    首先,我们来理解一下AJAX的基本原理。AJAX通过XMLHttpRequest对象与服务器进行通信,这个对象可以在后台与服务器进行异步数据交换。XML最初是用于数据交换的格式,但随着JSON的流行,现在更多的AJAX请求和响应使用...

    会用但不理解,带你精准理解mybatis-plus!

    5. **分页插件**:支持自动分页功能,可以轻松地实现对数据的分页查询。 6. **性能优化**:通过对SQL语句的优化,提高了数据访问层的执行效率。 #### 二、MyBatis-Plus与反射机制 MyBatis-Plus利用Java反射机制来...

    IA-32-3中文版,IA-32

    3. **内存管理**:探讨了分页机制,虚拟地址和物理地址的转换,以及保护环的概念,这些都是实现多任务和安全环境的关键。 4. **中断和异常**:解释了如何处理硬件中断和软件异常,这些是系统响应事件和错误处理的...

    linux-0.11 源代码+内核代码完全注释

    2. **内存管理**:Linux-0.11采用分页内存管理,将物理内存划分为固定大小的页,通过页表进行映射。此外,还有内存分配和回收算法,如 buddy 分配系统。 3. **文件系统**:内核中包含了文件系统的设计,如i节点和...

    AMD64 Architecture Programmer’s Manual

    这份手册对于硬件开发人员、系统程序员以及对底层计算机系统感兴趣的个人来说,都是不可或缺的参考资料。 1. **体系结构概述** - AMD64架构是基于传统的X86指令集的扩展,增加了新的64位指令和寄存器。 - 它支持...

    IA32体系结构设计手册

    通过《IA32体系结构设计手册》,开发者不仅可以学习到IA32处理器的底层工作原理,还能了解如何编写高效、优化的代码,以及如何调试和解决硬件与软件的交互问题。IA32-1.pdf、IA32-2.pdf、IA32-3.pdf这三份文档很可能...

    Principles of Computer Architeture

    计算机层次结构的概念帮助我们理解计算机的不同层级是如何组织的,从最底层的硬件到最高层的应用程序。这些层次包括:机器级、汇编语言级、高级语言级等。 #### 八、数据表示 数据表示是计算机科学的基础之一,这...

    os.rar_memory

    这种操作通常涉及到系统的底层工作,如处理器管理、内存分配以及中断处理等。 首先,我们来讨论"efi-stub.c"。EFI(Extensible Firmware Interface)是一个开放标准,用于定义现代计算机固件的接口,它取代了传统的...

Global site tag (gtag.js) - Google Analytics