Web之真假分页

2024-05-25 14:48
文章标签 web 分页 真假

本文主要是介绍Web之真假分页,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      web设计中一个无法避免的问题就是分页显示。当数据量特别大的时候,我们不可能将所有的数据都在一个页面进行显示,如果这样将严重影响到它的美观性。所以在这个时候,分页显示则成为了我们的大功臣。当然分页也分两种,一种是真分页,一种是假分页,即:

     假分页:从数据库中选择所有记录后在分页。

    真分页:从数据库中选择当前页的记录

 

    首先先来说一下自带的分页功能(假分页):

    在.net中的GridView控件就自带分页显示功能,当然操作很简单,总共分成两步:

        1、在界面添加一个GridView控件,设置其属性AllowPaging的值为TruePageSize的值为n n 为每一页显示记录的条数),这样就设置成功了。

        2、将数据绑定到GridView控件上面就可以了。具体如下:

        protected void Page_Load(object sender, EventArgs e){if (!Page.IsPostBack){//页面第一次加载时调用绑定数据方法</span>BindNews();}}/// <summary>///绑定数据方法/// </summary></span>private void BindNews(){//查询数据,并将数据绑定到GridView1上面</span>GridView1.DataSource = newNewsManager().SelectAll();GridView1.DataBind();}/// <summary>/// 换页时的数据绑定功能/// </summary>/// <paramname="sender"></param>/// <paramname="e"></param></span>protected voidGridView1_PageIndexChanging(object sender, GridViewPageEventArgs e){//获取当前页的索引</span>GridView1.PageIndex  = e.NewPageIndex;//重新进行数据绑定</span>BindNews();}</span>


    通过上面的步骤就可以轻松得到分页的数据了。虽然可以实现想要的结果,但是还存在着一些问题,比如上面的绑定数据方法中绑定的是全部的新闻,每次执行的时候都会查询数据库中所有的记录,当记录达到一定量大的时候比如50万条,100万条等等,这个时候绑定的时候会是多么长的时间。所以将上面的情况定义成为假分页。与其相比,真分页则很好的解决了这个问题,下面再来见证一下真分页的神奇吧:

 

    在分页之前要进行数据查询,所以在这我建立了一个存储过程,用于查询分页数据,具体如下:

<span style="font-size:18px;"><span style="white-space:pre">	</span>ALTER PROCEDURE[dbo].[aspPageChoose]</span>@startPageint,</span>@endPageint</span>AS</span>BEGIN----建立临时表,用于储存</span></span>withtemptbl as (</span>selectROW_NUMBER() OVER (ORDER BY id desc)as rowNum ,* from news</span>)</span>select* from temptbl  where rowNum between@startPage and @endPage</span>END</span>

    其次是U层的建立,在界面上面放置两个控件,分别是AspNetPageGridView,将这两个控件每页显示的个数设置成对应的数值,最后就是对数据的绑定,进行显示,如下

protected voidPage_Load(object sender, EventArgs e){if (!Page.IsPostBack){//页面第一次加载时调用绑定数据方法</span>anp.RecordCount = <span style="color:#ff0000;">新闻的总数量</span>;int startpage = 1;int endpage =3;DataTable dt = newNewsManager().SelectAspNetPage(startpage, endpage);GridView1.PageSize =endpage - startpage + 1;GridView1.DataSource = dt;GridView1.DataBind();}}//进行换页显示数据</span>protected voidanp_PageChanged(object sender, EventArgs e){int startpage =anp.StartRecordIndex;int endpage = anp.EndRecordIndex;DataTable dt = newNewsManager().SelectAspNetPage(startpage, endpage);GridView1.PageSize = endpage -startpage + 1;GridView1.DataSource = dt;GridView1.DataBind();}</span>

    总结:常说对比出真知,通过上面的对比,可以很清楚的展示,真分页为我们打开了方便之门,除此之外还给我们编程带来了巨大的好处。上面的纯属自己摸索而来,如有什么不足,还请各位指点指点。

这篇关于Web之真假分页的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1001814

相关文章

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

mybatis-plus分页无效问题解决

《mybatis-plus分页无效问题解决》本文主要介绍了mybatis-plus分页无效问题解决,原因是配置分页插件的版本问题,旧版本和新版本的MyBatis-Plus需要不同的分页配置,感兴趣的可... 昨天在做一www.chinasem.cn个新项目使用myBATis-plus分页一直失败,后来经过多方

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

解决JavaWeb-file.isDirectory()遇到的坑问题

《解决JavaWeb-file.isDirectory()遇到的坑问题》JavaWeb开发中,使用`file.isDirectory()`判断路径是否为文件夹时,需要特别注意:该方法只能判断已存在的文... 目录Jahttp://www.chinasem.cnvaWeb-file.isDirectory()遇

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

一文教你使用Python实现本地分页

《一文教你使用Python实现本地分页》这篇文章主要为大家详细介绍了Python如何实现本地分页的算法,主要针对二级数据结构,文中的示例代码简洁易懂,有需要的小伙伴可以了解下... 在项目开发的过程中,遇到分页的第一页就展示大量的数据,导致前端列表加载展示的速度慢,所以需要在本地加入分页处理,把所有数据先放

Redis存储的列表分页和检索的实现方法

《Redis存储的列表分页和检索的实现方法》在Redis中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,... 目录一、Redis 列表的基本操作二、分页实现三、检索实现3.1 方法 1:客户端过滤3.2 方法

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去