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

自己写代码实现分页导航

2004-06-27 08:53 856 查看
问题提出: 在ASP.NET中,分页导航似乎变得很简单,使用DataGrid做一些简单的设置就OK了。但是细心老练的程序员不会喜欢这种方式的,因为这种方式每显示一页都需要将全部数据放置到DataGrid中,再选择相应页次的几个数据。当数据量很大的时候,速度就会成为问题。还有一个缺点是页面风格,当最后一页的记录条数小于设定的每页的条数时,样子就会变得很难看。
技术分析:我们需要的是只查询出当前页次的记录,并按照设定的风格显示出来。这里设计到两个问题:一是数据库的查询,怎么动态的将特定页的特定数据查询出来;二是显示的问题,需要自己写一个函数来实现分页级导航的功能。
MySql、Oracle数据库都有自己的查询数据库中指定开始和结束记录的SQL语句。但是好想SQl Server数据库只有 TOP 关键字来查询前几条记录。不过没关系,我们可以使用这个来创造出查询数据库中指定开始和结束记录的SQL语句:
定义 page:当前页次;pageSize:每页显示条数;
SELECT TOP pageSize from myTable
WHERE ID NOT IN (
SELECT TOP pageSize*(page-1) FROM myTable
ORDER BY ID
)
ORDER BY ID
这个只是一个简单的没有查询条件的查询,如果需要查询条件的时候,记住别忘记在两处都要添加查询条件。
第二步是写一个Page类来实现分页导航的功能。其中一个方法:public string pageList(string strTitle,string strTab,string[] flds,string[] cols,string strCon,int pageSize,int startIndex)
strTile:分页导航的标题,例如为“新闻列表”
strTab:数据表名
flds:标题栏
cols:对应的数据字段
strCon:查询条件
pageSize:每页显示条数
startIndex:开始页数(0,1,2,3)

返回一段字符串代码,这段代码就是生成的分页导航的HTML代码,在pageLoad事件里,调用该方法,并将返回值赋值给页面上定义好的一个div就可以了。
this.New_Page.InnerHtml = Page.PageList(strTitle,strTab,flds,cols,strCon,recordCount,PageSize,0);

示例代码:篇幅限制,需要请联系我。
MSN:fanhuayi76@hotmail.com
QQ:7760126
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: