ASP

本类阅读TOP10

·asp常用数据库连接方法和技巧
·无组件生成BMP验证码
·一些常用的辅助代码 (网络收藏)
·JavaScript实现的数据表格:冻结列、调整列宽和客户端排序
·VisualStudio.NET_2003及其 MSDN 下载地址
·ASP模拟MVC模式编程
·图片以二进制流输出到网页
·MD5加密算法 ASP版
·ASP.NET编程中的十大技巧
·改进 ASP 的字符串处理性能

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
ASP.NET分页的处理方式

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

参照了多位高手的文章,主要觉得最重要是分页最好用存储过程来处理,返回当前页数据的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

其中主要思路参考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+"下一页  末页";
     }

请各位高手执教。




相关文章

相关软件