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

AspNetPager真假分页对比实例

程序员文章站 2022-09-27 17:21:16
从开始学习bs已经有一段时间了。对于bs的设计,都是进行的,其中包括从中取出来的数据,显示在页面上。以前在cs中,都是使用gridview等表格控件进行显示,由于数据小,而且右侧又有...

从开始学习bs已经有一段时间了。对于bs的设计,都是进行的,其中包括从中取出来的数据,显示在页面上。以前在cs中,都是使用gridview等表格控件进行显示,由于数据小,而且右侧又有滚轮。所以从来都没有考虑过给数据进行分页。所以这是一大失误。现在反应过来也不算晚。接下来,让我们接触一下分页。

不进行分页的弊端:

对于大数据的查询操作。

1、数据量太大,窗体载入时间太慢

2、显示的数据量太大,用户看起来不舒服。

分页的两种方式:

假分页:

在执行查询的时候,就把所有的数据都查询出来,之后再跳转页面的时候 就不需要进行查询了。

真分页:

在执行查询操作的时候,只查询所显示当前页面的内容进行显示。之后的跳转页面也需要查询数据库取对应数据。

在数据量大的情况下对比:

AspNetPager真假分页对比实例

在小数据的情况下,因为现在的电脑处理速度都够快,采用真分页和假分页用户体验度没有差别。

关于如何添加aspnetpager控件,借阅以下文章:

http://blog.csdn.net/u010066934/article/details/38374111

真假分页实例结果图:喎? f/ware/vc/"="" target="_blank" class="keylink">vcd4kpha+pgltzybzcmm9"/uploadfile/collfiles/20140810/20140810092635162.png" alt="\">

使用自带的gridview表格来显示数据。利用aspnetpager控件 进行分页。

如何使用aspnetpager请翻阅---。我就不赘述了。

html主界面:

                
                    
                        
                        
                    
                
                
                    
                        asp:gridview id="gridview1" runat="server">
                        
                    
                
                
                    
                        
                        
                    
                
            


先设置一个分页控件在首部,之后再复制上面的控件放到底部,使其达到同步的效果。

AspNetPager真假分页对比实例

为了对比一下真假分页,首先看假分页的实现:

using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
using system.data;
using system.data.sqlclient;

namespace news
{
    public partial class jiafenye : system.web.ui.page
    {
        dataview dv = new dataview(db.getsource());

        protected void page_load(object sender, eventargs e)
        {
            //anptop.recordcount = db.count();            //把数据的记录总数 保存到分页控件中
            //gridview1.datasource = db.getsource(1, 5);   //默认选择5条记录
            //gridview1.databind();

            anptop.recordcount = db.count();            //把数据的记录总数 保存到分页控件中
            dv.rowfilter = "id
结束页码:" + anptop.endrecordindex); int startindex = anptop.startrecordindex; //其实记录号 int endindex = anptop.endrecordindex; //终止记录号 //dataview dv = new dataview(db.getsource()); dv.rowfilter = "id >=" + startindex + " and id


在来对比一下,真分页的实现:

using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;

namespace news
{
    public partial class webform1 : system.web.ui.page
    {

        protected void anp_pagechanged(object sender, eventargs e)
        {
            //response.write("开始页码:" + anptop.startrecordindex + "
结束页码:" + anptop.endrecordindex); int startindex = anptop.startrecordindex; //数据的起始记录数 int endindex = anptop.endrecordindex; //数据的截止记录数 gridview1.datasource = db.getsource(startindex,endindex); //显示当前区间内的数据 gridview1.databind(); } protected void page_load(object sender, eventargs e) { anptop.recordcount = db.count(); //把数据的记录总数 保存到分页控件中 gridview1.datasource = db.getsource(1,5); //默认选择5条记录 gridview1.databind(); } } }

通过对比以上实验结果,因为测试的数据太少 效果不明显。不过通过代码实现过程,可以看出,在大数据的前提下,假分页载入是一个很大的问题。当然 两种分页方式 各有特色,可以根据实际需求来选择。

如果有需要看的,请自行下载:

http://download.csdn.net/detail/zc474235918/7734743


喎?>