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

相关文章

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

Mybatis的分页实现方式

《Mybatis的分页实现方式》MyBatis的分页实现方式主要有以下几种,每种方式适用于不同的场景,且在性能、灵活性和代码侵入性上有所差异,对Mybatis的分页实现方式感兴趣的朋友一起看看吧... 目录​1. 原生 SQL 分页(物理分页)​​2. RowBounds 分页(逻辑分页)​​3. Page

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?安装与环境配置构建你的第一个应用核心概念解析组件