注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

汇总技巧

你快乐我快乐.... 汇集各类技巧,传播技巧,让我们共同熟练运用技巧..

 
 
 

日志

 
 

ASP.NET分页的处理方式  

2011-06-26 12:45:04|  分类: ◆ASP技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

参照了多位高手的文章,主要觉得最重要是分页最好用存储过程来处理,返回当前页数据的DataSet。
存储过程如下:
CREATE PROCEDURE dbo.sp_info_page2
(
@pagesize int,
@currpage int
)
as
begin
DECLARE @sqlText AS nvarchar(4000)
if @currpage=1) set @sqlText='select top '+CAST(@pagesize) as varchar(30))+' * FROM TBL_INFO ORDER BY INFOID DESC'
ELSE
set @sqlText='select top '+CAST(@pagesize) as varchar(30))+' * FROM tbl_info
WHERE (infoid(SELECT MIN(infoid)
FROM (SELECT TOP '+CAST(@pagesize*(@currpage-1)) as varchar(30))+' infoid
FROM tbl_info
ORDER BY infoid desc) AS T)) ORDER BY infoid desc'
EXEC@sqlText)
end
GO
其中主要思路参考aspx">http://blog.csdn.net/lihonggen0/archive/2004/09/14/103511.aspx
target=_blank>http://blog.csdn.net/lihonggen0/archive/2004/09/14/103511.aspx">http://blog.csdn.net/lihonggen0/archive/2004/09/14/103511.aspx

考虑到大多数内容都需要对ID字段进行倒序,所以将存储过程进行了一定的修改。
在通过存储过程返回的DataSet之后,你只需要控制分页标示符就可以了。
首先读取整个整个数据的条目总和,取得总数,再按照页面大小获得页面分页导航字符串。
strPageControl="a href=info.aspx?currpage=1首页/a ";
if (intCurrPageNo!=1) strPageControl=strPageControl+"a href=info.aspx?currpage="+Convert.ToString(intCurrPageNo-1)+"上一页/a ";
else strPageControl=strPageControl+"上一页 ";
if (intCurrPageNo!=intPageCount)
{
strPageControl=strPageControl+"a href=info.aspx?currpage="+Convert.ToString(intCurrPageNo+1)+"下一页/a ";
strPageControl=strPageControl+"a href=info.aspx?currpage="+Convert.ToString(intPageCount)+"末页/a";
}
else
{
strPageControl=strPageControl+"下一页 末页";
}
请各位高手执教。

  评论这张
 
阅读(136)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017