原帖及讨论:http://bbs.bccn.net/thread-207175-1-1.html

*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: hebingbing
*/ 时间: 2008-4-5 04:30 编程论坛首发
*/ 声明: 光看我这么晚了还在工作,转载这段文字应该保留吧……
*/ --------------------------------------------------------------------------------------
废话:清明节,同学回家的回家,旅游的旅游……我离家远是不可能回家了,旅游吧不感兴趣,觉得还不如看一场电影……呵呵,从小不喜欢旅游观光……
转入正题:大家都知道asp.net中的Gridview。datalist等都可以自定义分页,但是当你翻页的时候,数据表中的所有数据都会加载到内存,重新绑定,当然要是数据量小的话,这是可以的,我们也很乐意用,原因简单因为方便,但是要是数据量是999999999999……,在信息爆炸的这个时代海量数据是经常的时,那么这些控件自带的分页就显得有些……
解决这个问题办法就是自己动手……不多废话了,看代码:
1.首先我是用存储过程来解决的,要弄懂这个问题,首先要从存储过程下手,代码如下:

 

Code

 

其实代码也很简单,学编程的人基本上都是懂数据库的,这个存储过程估计不是问题。
其他的代码我都做了解释,有颜色的那段我没有解释,我在这里解释一下。其实也很简单,大家来看:
select top '+str((@intPageNo-1)*@intPageSize)+' '+@SelectOrderId+' from '+@TableName+' '+@SelectWhere +' '+@SelectOrder+'
这段代码的执行结果是什么了,是不是当前页前面的主键的集合啊,现在我们从所有的表中选出主键的值不在这个结果的之内的pagesize个记录不就是当前页的内容了吗?
2.aspx页面就不用再将了吧?我这里将代码写上:

页面代码

 

3.cs页面其实也每页什么好讲的,也就是一些常用的代码罢了……我把代码加上,大家看看,要是有疑问的可以回复我再解释:

代码页

 

 

posted on 2008-11-10 01:26  happyriver  阅读(223)  评论(0)    收藏  举报