AspNetPager + RowNum 实现简单分页

      闲来无事,来研究研究.net的分页技术。

      在网上也看了不少的关于分页的文章,大多可以归纳为一下几类,第一:纯存储过程分页,大多语句非常繁琐,维护起来也很麻烦;第二:用.net的PagedDataSource分页,这中分页操作起来比较简单,但是只适合小数据量,一旦数据量上了十万,百万的这种分页方式已经不在适合;第三:用Viewdata传参进行分页,这种分页方式看上去效率还是可以,但是稳定太差。当然还有其他的分页方式,我在这里就不在一一列举,下面我就谈谈自己的分页方式。

      首先让我们先来了解一下AspNetPager是个什么东东,可能会有N多人已经认识了并且用过了这个控件,但是这里我还是希望你能耐心的继续听下去,AspNetPager针对ASP.NET分页控件的不足,提出了与众不同的解决asp.net中分页问题的方案,即将分页导航功能与数据显示功能完全独立开来,由用户自己控制数据的获取及显示方式,因此可以被灵活地应用于任何需要实现分页导航功能的地方,如为GridView、DataList以及Repeater等数据绑定控件实现分页、呈现自定义的分页数据以及制作图片浏览程序等,因为AspNetPager控件和数据是独立的,因此要分页的数据可以来自任何数据源,如SQL Server、Oracle、Access、mysql、DB2等数据库以及XML文件、内存数据或缓存中的数据、文件系统等等,下面我将用我的实例来为你讲解AspNetPager结合sqlserver2005实现的分页过程。

      首先要在项目里面引用一下AspNetPager.dll(没有的可以到这里下载http://www.webdiyer.com ),下面是我的aspx页面代码:

 

Code

 

注意引用AspNetPager.dll,要在你的分页页面上添加<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>,这里我要对我的IPInfo表进行分页,数据有40W条,应该不算小吧,那么接着看我们应该写一个分页存储过程,这里的存储过程是使用微软在MS SQL2005才加上去的ROW_NUMBER函数来写,这将会大大减少存储过程代码。

 

Code

这个存储过程需要连个参数@startIndex,@endindex,大家可以看到这个存储过程有多短,而且多么易读。下面我们来看看后台的代码:

 

Code

看到这里相信你已经彻底的知道了AspNetPager分页的用法,当然还有就是再看看使用AspNetPager分页的外观是什么这样的,当然外观是可以选择的,你甚至在理解了AspNetPager的工作原理之后(可以自己去反编译AspNetPager.dll文件)可以自己对其中的方法进行更改,家点自己风格进去未尝不可。

 

这就是当前的效果图,查询速度也是非常的快,有兴趣的朋友可以尝试一下.

posted @ 2009-04-29 16:14  弗雷德瑞克杨  阅读(1169)  评论(0编辑  收藏  举报