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

相关文章

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

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