Web之真假分页

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

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

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

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

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

1、在界面加入?一个GridView控件,设置其属性AllowPaging的值为True,PageSize的值为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 [email protected] and @endPage
	</span>END</span>

其次是U层的建立,在界面上面放置两个控件,各自是AspNetPage和GridView,将这两个控件每页显示的个数设置成相应的数值,最后就是对数据的绑定,进行显示,例如以下

        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之真假分页

时间: 2024-12-19 13:04:09

Web之真假分页的相关文章

牛腩新闻发布系统——真假分页

牛腩新闻发布系统已近尾声,牛老师重磅推出真假分页作为压轴,足以见得分页的重要性.我们就一起看一下真假分页的实现以及各自的特点. 一.分页简介 当我们显示足够大的数据量时,所有数据显示在一页上,会造成不必要的麻烦,本着为用户服务的态度,我们往往采用分页显示的处理办法.分页主要分为真分页与假分页. 假分页: 从数据库一次性取出所有数据绑定到控件上,再将所有数据根据每页显示记录条数进行分页.当数据量 比较大时,这种分页方法会造成查询速度, 使用户体验度降低,但是跳页速度较快. 真分页:在执行查询操作的

AspNetPager真假分页对照实例

从開始学习BS已经有一段时间了. 对于BS的设计,都是进行的网页设计,当中包含从数据库中取出来的数据.显示在页面上.曾经在CS中,都是使用GridView等表格控件进行显示,因为数据小.并且右側又有滚轮. 所以从来都没有考虑过给数据进行分页.所以这是一大失误. 如今反应过来也不算晚.接下来,让我们接触一下分页. 不进行分页的弊端: 对于大数据的查询操作. 1.数据量太大,窗口加载时间太慢 2.显示的数据量太大,用户看起来不舒服. 分页的两种方式: 假分页: 在运行查询的时候,就把全部的数据都查询

ASP.NET——真假分页

所谓分页,就是把所有要显示的内容分成n多页来显示.那为什么要用分页而不直接全部显示呢?这就好比一本书,我们可以用一张纸写完全部书的内容,但实际上并不是这么做的.我们把网页分成一页一页的,其实很大程度上是在为用户考虑,极大的方便用户. 分页有两种,一种是真分页,一种是假分页. 假分页的"假"在于我已经把所有的数据取出来了,只是在显示的时候给予一定的控制来到达分页的效果. 真分页的"真"在于所有的数据并非一次取出,而是真真正正的用户查看哪一页才去数据库中取出所需的内容.

AspNetPager真假分页对比实例

从开始学习BS已经有一段时间了.对于BS的设计,都是进行的网页设计,其中包括从数据库中取出来的数据,显示在页面上.以前在CS中,都是使用GridView等表格控件进行显示,由于数据小,而且右侧又有滚轮.所以从来都没有考虑过给数据进行分页.所以这是一大失误.现在反应过来也不算晚.接下来,让我们接触一下分页. 不进行分页的弊端: 对于大数据的查询操作. 1.数据量太大,窗体载入时间太慢 2.显示的数据量太大,用户看起来不舒服. 分页的两种方式: 假分页: 在执行查询的时候,就把所有的数据都查询出来,

ASP.NET真假分页—真分页

 承接上篇博文<ASP.NET真假分页-假分页>:http://blog.csdn.net/u010773667/article/details/38845009,继续讲解ASP.NET真假分页之真分页. 真分页 当数据量过大,有几万甚至十几万条数据时,每次都从数据库中取出所有数据就会降低查询效率,系统运行慢,还有可能卡死,这时假分页就会显得很不人性化,因此有了真分页的必要性. 正如上篇博文总结归纳,"真"相对于"假"存在,即不藕断丝连,从根部彻底断

Servlet+JavaBean+JSP真假分页技术详解

说明:分页技术分为真分页和假分页,具体采用哪种技术需要根据需求自我抉择.其实两者之间实现区别并不是太大.在分页之前我们需要搞明白对谁进行分页,一般情况是将数据封装到一个list集合中,明白这这一点问题基本上就已经解决了.(编写匆促如有错误请联系我) 下面首先介绍真分页. 方法一: 为了大家学习起来方便, 我将在项目中用到的内容都放在这个文档中,所以可能会比较萝莉啰嗦. 1.构建数表,字段如下 goods goodid int goodname varchar(45) price flaot 2,

牛腩新闻发布系统-真假分页

牛腩新闻发布系统在新闻管理页面出现这么一个问题,当新闻条数非常多的时候,表格会很长,如下图,圆角矩形就会出现一个缺口.在这里就引出了分页技术. 具体解决办法如下: 1.我们首先在Web窗体源中拉入一个GridView控件,然后在设计中设置其属性.AllowPaging:True,,PageSize:5(可根据自己意愿来). <span style="font-size:18px;"><asp:GridView ID="GridView1" runa

Asp.Net北大青鸟总结(四)-使用GridView实现真假分页

这段时间看完了asp.net视频,但是感觉到自己的学习好像没有巩固好,于是又在图书馆里借了几本关于asp.net的书感觉真的很好自己大概对于asp.net能够实现基本的小Demo,但是我知道只有真正的使用才能够有所收获,而且自己的认识度还是要进一步的学习,在这一部分的学习中自己也算是对于分页有了一个基本的了解了吧,也用它做出来的几个基本的Demo,那么接下来我们来看一下这个控件的用于真假分页的一些使用方法. 一.什么是真假分页 1.假分页: 假分页虽然在界面上实现了分页的,但是他并没有实现分页,

Web开发之分页算法,N(N&gt;=3)种解决方案

在Web开发中,分页是最常用的一个功能了.但是,想简单.灵活.方便地解决分页这个问题,还是需要动点脑筋的. 今天,简要梳理下,过去6年中,亲自遇到的分页问题和解决办法. 1. 定义问题 原由:在页面中需要展示若干数据,但不可能一次展示所有的,想通过每次只展示若干条.分页数,pageNo,是为了标记,当前访问的内容在哪里. 后端需要做的:后端需要分页查询数据,把数据返回给前端 前端需要做的:根据后端的数据,构造"1.2.3"等分页面板,并且要响应事件,比如点击"2",