Web之真假分页

Web之真假分页

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

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

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

 

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

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

        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>

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119092.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Web Worker详解

    Web Worker详解WebWorker1.WebWorker概述最近在看一些关于WebWorker的数据和视频,把以下重点分享给大家(推荐有基础的小伙伴收藏)客户端JavaScript其中一个基本的特性就是单线程,比如浏览器无法同时运行两个事件处理程序,也无法在一个事件处理程序运行的时候触发定时器。之所以设置单线程的理论就是,客户端的JavaScript的函数不能运行太长时间,否则会导致循环事件,…

    2025年5月22日
    0
  • 朋友圈集赞小程序 最新版_朋友圈虚拟点赞软件

    朋友圈集赞小程序 最新版_朋友圈虚拟点赞软件大家好这是一款朋友圈积攒截图小程序里面内涵三款样式生成,一款图文,一款分享,一款查看的样式也就是我们微信朋友圈所用到的样式就包含了里面的流量主那些可以用户自由的添加哈!赞的数量那些可以用户自定义的哈另外所需的内容也是用户自定义的安装方法的话和往常一样!直接微信开发者工具打开源码然后设置一个合法域名上传审核就可以了合法域名在压缩包里面,搭建解压了就可以看到了小程序源码下载地址:…

    2022年9月5日
    2
  • awvs11安装教程_ajax使用步骤

    awvs11安装教程_ajax使用步骤Awvs12.x安装及使用教程Awvs12.x安装1.下载Awvs12.x版本和对应补丁2.安装AwvsAwvs12.x使用Awvs12.x导出渗透结果报表Awvs12.x下载链接Awvs12.x安装1.下载Awvs12.x版本和对应补丁2.安装Awvs1.双击acunetix_12.0.180911134.exe进行安装2.然后选择我同意该条款3.随便填写对应邮箱如xxx@qq.com,账号密码一定要记住如果出现下图,是密码设置太简单了,需要设置含三种规则以上的密码如Abc12345

    2022年9月16日
    1
  • pfx证书获取私钥「建议收藏」

    pfx证书获取私钥「建议收藏」publicclassKeyUtil{publicKeyUtil(){}publicstaticPrivateKeygetPrivateKeyFromPFX(InputStreaminputStream,StringpfxFilePwd)throwsPKIException{PKCS12pkcs12=newP…

    2022年5月12日
    46
  • pycahrm激活码 3月最新注册码

    pycahrm激活码 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    77
  • NOIP 2012 年普及组初赛试题整理「建议收藏」

    NOIP 2012 年普及组初赛试题整理「建议收藏」问题求解题目答案:5题目解析:贪心法。构造出最坏情况下至多选4点、不在同一条直线上,此时再添加任意一个点,则一定出现3点一线。题目答案:2880题目解析:圆排列问题。5名大陆选手的排列方案数为:5!5名港澳选手安排在大陆选手之间的5个空位的排列方案数为:5!总的排列方案数为:5!×5!。但每位选手左边相邻的选手均相同,为重复方案。最终结果为:阅读程序#include<iostream>usingnamespace..

    2022年8月22日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号