欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET——真假分页

程序员文章站 2022-04-11 20:07:25
所谓分页,就是把所有要显示的内容分成n多页来显示。那为什么要用分页而不直接全部显示呢?这就好比一本书,我们可以用一张纸写完全部书的内容,但实际上并不是这么做的。我们把网页分成一页一...

所谓分页,就是把所有要显示的内容分成n多页来显示。那为什么要用分页而不直接全部显示呢?这就好比一本书,我们可以用一张纸写完全部书的内容,但实际上并不是这么做的。我们把网页分成一页一页的,其实很大程度上是在为用户考虑,极大的方便用户。

分页有两种,一种是真分页,一种是假分页。

假分页的“假”在于我已经把所有的数据取出来了,只是在显示的时候给予一定的控制来到达分页的效果。

真分页的“真”在于所有的数据并非一次取出,而是真真正正的用户查看哪一页才去中取出所需的内容。

假分页:

在asp.net中,我们经常用gridview,repeater来绑定数据源,显示从数据库中查到的数据。我们就先以gridview为例,来看看假分页是如何实现的。

首先,在页面添加gridview。并设置允许分页和分页显示的条数,即allowpaging=true,pagesize=6.(即每页显示6条记录,如图:)

ASP.NET——真假分页

当运行界面时,可以显示分页状态。但当单击第2页的按钮时,会触发pageindexchanging事件,它是在单击某一页导航按钮时,但在 gridview 控件处理分页操作之前发生。

 

 public partial class test : system.web.ui.page
    {
        protected void page_load(object sender, eventargs e)
        {
            //当第一次进入页面时,显示绑定的数据
            if (!page.ispostback)
            {
                gridview1.datasource = new newsmanager().selectall(); //这里用到了分层,可以直接理解为绑定数据库中的表。
                gridview1.databind();
            }
        }

        //触发分页事件
        protected void gridview1_pageindexchanging(object sender, gridviewpageeventargs e)
        {
            gridview1.pageindex = e.newpageindex;
            gridview1.datasource = new newsmanager().selectall();
            gridview1.databind();
        }
    }
这样,就可以实现假分页了。

 

真分页:

这里要用到一个分页的控件aspnetpager。

首先,添加该控件。

在工具箱处右击——选项卡
ASP.NET——真假分页

单击浏览后,找到aspnetpager.dll.

ASP.NET——真假分页

这样,工具箱就出现该控件了。

ASP.NET——真假分页

把它拖到设计界面,如下图:

ASP.NET——真假分页

分页控件添加完成后,类似地,设定每页的显示条数和最大记录数。这时,当改变页数时执行pagechanged事件。startrecordindex, endrecordindex分别是开始行数和结束行数。利用这两个参数很容易可以实现从数据库一页一页地取出数据,在这里就不赘述了。

 

比较这两种分页方式:

真分页与后台的交互次数多,但面对庞大数据时仍能保持高效率,用户体验度较好。假分页则相反。

 

附:

sql中的分页语句

 

select top 每页显示的记录数(pagesize) * from topic where id not in  
 (select top (当前的页数-1)×每页显示的记录数 id from topic order by id desc)  
 order by id desc

aspnetpager分页控件