CSDN博客

img flyby

自己写代码实现分页导航

发表于2004/6/27 8:53:00  1061人阅读

       问题提出: 在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

0 0

相关博文

我的热门文章

img
取 消
img