您的位置:首页 > 编程语言 > ASP

利用AspNetpager控件分页

2011-08-12 23:42 295 查看
软件设计人员在应对大数据量时,有很多的解决方案,如优化代码、使用存储过程、建立索引、批量处理、分页等等,总有一种或几种是能解决数据响应慢问题的,这次做项目用到了分页的技术,分页除去应对大数据量还能一定程度让页面看起来更为美观。

分页一般分为两种:一种是假分页,它其实应对大数据量是没有什么明显的作用,只是起到了美化页面的作用,让页面看起来不那么凌乱,因此在小数据量的时候是可以采用的,假分页的控件和方法很多,微软的Gridview、PagedDataSource和Repeater控件都可以用来分页,这里不做详细的讨论。

第二种是真分页,如同名字这个就是真的把数据分开,从数据库开始分,意思也就是页面当前显示哪些数据就从数据库拿哪些数据,分页的方式也有很多种,我用了一种比较简便的方法,用AspNetPager分页控件进行分页,此控件支持VS05到10的所有版本,有很强大的功能,并且免费,可在google中搜索AspNetPager下载即可。

下面主要来演示一下我在使用它的过程,下载完AspNetPager控件的DLL文件后,首先在VS中引用AspNetPager控件的DLL文件,然后在工具箱的空白处右击选择“选择项”,如下图:



然后在打开的页面中,勾选AspNetPage选项,如果没有,则选择浏览按钮,找到刚才的dll文件即可,如下图:



这时候工具箱中就出现AspNetpager的控件,拖入所需要的页面,然后去属性页面设置该控件的分页大小pagesize属性,并且设置它的触发事件onpagechanged。

进入CS页面就开始编码阶段了,在onpagechanged事件中绑定数据,代码如下:

int startPage = anpNews.StartRecordIndex;
int endPage = anpNews.EndRecordIndex;
rptNews.DataSource = new BNews().ByPageSelect(startPage, endPage);
rptNews.DataBind();


rptNews为Repeater控件,这就是界面层的绑定,BLL层只需往下传递起始页和结束页的参数即可。

DAL层为数据库操纵层,这里面主要写操作数据库的SQL语句,具体写法如下:

select * from(select ROW_NUMBER() over (order by news_id desc) as rownum,*from News)
as temp where rownum between  @startIndex and @endIndex


到此为止,我们的分页就实现了,至于不懂ROW_NUMBER()
函数的童鞋可以去SQL查看帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: