CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

呵呵!写了个分页函数,有兴趣可以来看看,自认为比较方便实用。

楼主bubuy(始不垂翅,终能奋翼)2003-10-17 12:16:40 在 Web 开发 / ASP 提问

大家来看看,用用,顺便提提意见。  
  大家可以添加新得功能或修改已有得功能  
  不过别忘了改后给我一份噢,谢谢  
  bubuy@sohu.com  
  也可以发在帖子里  
  给50分给修改该程序比较好的大哥。 问题点数:50、回复次数:49Top

1 楼bubuy(始不垂翅,终能奋翼)回复于 2003-10-17 12:17:03 得分 0

<%  
  '=================       ProgrammName:   分页函数       =======================  
  '     ================       Programmed     by     Bubuy       =====================  
  '         ====================       2003.10.16       ========================  
  Function   cutPage(sqlStr,Conn,dateNums,pageNums,URLs)'利用ADO分页的函数  
      Dim   sql,Cn,dateNum,pageNum,URL,rsDate  
      Sql=Trim(sqlStr)   '获得sql语句。  
      Set   Cn=Conn   '获得数据对象  
      dateNum=Cint(dateNums)   '获得每页得记录数  
      pageNum=Cint(pageNums)   '获得当前页码  
      URL=Trim(URLs)   '获得路径  
      Set   rsDate=Server.CreateObject("ADODB.Recordset")  
      rsDate.PageSize=dateNum  
      rsDate.Open   Sql,cn,1,1  
      IF   rsDate.Eof   Then  
            Response.Write("<center><font   stlye='font-size:14px;'   color='#ff0000'>对不起,没有记录!</font></center>")  
      Else  
            IF   pageNum=""   or   pageNum<1   Then    
          pageNum=1  
    ElseIf   pageNum>rsDate.PageCount   Then  
          pageNum=rsDate.PageCount  
    End   IF  
    rsDate.absolutepage   =pageNum  
            Dim   recordHead,recordLast   '定义当前页开头记录和结束记录  
    recordHead=1  
    If   pageNum>1   Then   recordHead=dateNum*(pageNum-1)  
    If   pageNum>=rsDate.PageCount   Then  
          recordLast=rsDate.RecordCount  
            Else  
          recordLast=dateNum*pageNum  
    End   If  
            Response.Write("<table   width=100%   border='0'   cellpadding='0'   cellspacing='0'   style='font-size:12px;'>")    
            Response.Write("<tr><td   height=38   align=left><font   stly='font-size:12px;'>(第"&recordHead&"-"&recordLast&"条,共"&rsDate.Recordcount&"条,每页显示"&dateNum&"条)</font></td></tr>")        
    Dim   URLa   '定义判断输入得URL包含?没有的变量  
    Dim   upPage,downPage,allPage   '定义向上和向下翻的变量  
    Dim   allWrite   '定义输出  
    upPage=pageNum-1  
    downPage=pageNum+1  
            URLa=Split(URL,"?",-1,1)  
            If   URLa(0)=URL   Then  
          upPage="<a   href="   &   URL   &   "?page="   &   upPage   &"   stlye='font-size:12px;'>上一页</a>&nbsp;"  
  If   pageNum=1   Then   upPage=""  
  downPage="<a   href="   &   URL   &   "?page="   &   downPage   &"   stlye='font-size:12px;'>下一页</a>"  
  If   pageNum=rsDate.PageCount   Then   downPage=""  
            Else  
                  upPage="<a   href="   &   URL   &   "&page="   &   upPage   &"     stlye='font-size:12px;'>上一页</a>&nbsp;"  
  If   pageNum=1   Then   upPage=""  
  downPage="<a   href="   &   URL   &   "&page="   &   downPage   &"     stlye='font-size:12px;'>下一页</a>"  
  If   pageNum=rsDate.PageCount   Then   downPage=""  
            End   If    
    allWrite=upPage   &   downPage   &   "&nbsp;&nbsp;共"   &   rsDate.PageCount   &   "页&nbsp;"   &   "目前第"&   pageNum   &"页"  
    allwrite="<font   style='font-size:12px;'>"   &   allWrite   &   "&nbsp;到第<input   type='text'   style='width:30px;'>页<input   type='submit'   value='GO'></font>"  
    Response.Write("<tr><form   name='formPage'   method='post'   action="&URL&"><td   height=30   align=right   style='font-szie=12px;'>"   &   allWrite   &   "</td></form></tr>")  
    Response.Write("<tr><td   align=center>")  
    Response.Write("<table   width=100%   border='0'   cellpadding='0'   cellspacing='0'>")  
    Response.Write("<tr>")  
    Response.Write("<tr   bgcolor='#efffce'   height=25>")  
    Dim   id,i  
    For   i=0   to   rsDate.Fields.Count-1   '设置表头  
          Response.Write("<td   align='center'><font   style='font-size:14px;'><b>"&rsDate.Fields(i).Name&"</b></font></td>")  
    Next  
    Response.Write("</tr>")  
    id=0  
    While   not   rsDate.EOF   and   id<dateNum  
          id=id+1  
  If   id   Mod   2=0   then  
                        Response.Write("<tr   bgcolor=#f7f6e7>")  
                  Else  
                        Response.Write("<tr   bgcolor=#ffffff>")  
                  End   If  
  For   Each   fils   in   rsDate.Fields  
                Response.Write("<td   align='center'   height=20>"&fils&"</td>")  
  Next  
  Response.Write("</tr>")  
  rsDate.MoveNext        
    Wend  
    Response.Write("<tr   height=30   bgcolor='#efffce'>")  
            For   i=0   to   rsDate.Fields.Count-1   '设置表尾  
          Response.Write("<td   align='center'><font   style='font-size:14px;'><b>"&rsDate.Fields(i).Name&"</b></font></td>")  
    Next  
    Response.Write("</tr>")  
    Response.Write("</table></td></tr>")  
    Response.Write("<tr><form   name='formPage1'   method='post'   action="&URL&"><td   height=30   align=right>"   &   allWrite   &   "</td></form></tr>")  
      End   IF  
      rsDate.close  
      Set   rsDate=nothing  
  End   Function  
   
  %>Top

2 楼bubuy(始不垂翅,终能奋翼)回复于 2003-10-17 12:24:20 得分 0

这样使用  
  page=request("page")  
  sql="select   *   from   [table]"  
  url="xx.asp"当然也可以是"xx.asp?bubuy=1"  
  conn大家都知道是定义的什么吧  
  调用就这样  
  Call   cutPage(sql,conn,"3",page,url)'3代表每页显示3条记录Top

3 楼wch0410(宁肯笑着流泪,绝不哭着后悔)回复于 2003-10-17 13:00:34 得分 0

楼主辛苦了  
  scTop

4 楼bubuy(始不垂翅,终能奋翼)回复于 2003-10-17 13:03:16 得分 0

没人来关心啊,唉~~没劲Top

5 楼dengyin2000(dengyin2000)回复于 2003-10-17 13:11:12 得分 0

收藏!!Top

6 楼wch0410(宁肯笑着流泪,绝不哭着后悔)回复于 2003-10-17 13:14:11 得分 0

没有权力  
  不然的话帮你置顶  
  功能都实现了,我刚试过  
  再帮你upTop

7 楼bird1(蓝鸟)回复于 2003-10-17 13:15:28 得分 0

thank   u   very   much!Top

8 楼jackrong427(热锅上的蚂蚁)回复于 2003-10-17 13:19:51 得分 0

我要收藏!!Top

9 楼eliphe(未来)回复于 2003-10-17 13:23:53 得分 0

鼓励一下,楼主辛苦了  
  Top

10 楼Novolee(人民子弟兵)(http://biglee.cn/?c)回复于 2003-10-17 13:36:19 得分 0

收了.Top

11 楼divids(QOQ)回复于 2003-10-17 13:48:12 得分 0

辛苦Top

12 楼lyj0243122(大军)回复于 2003-10-17 13:49:44 得分 0

太感谢了,收藏Top

13 楼zrla()回复于 2003-10-17 13:58:30 得分 0

辛苦了。Top

14 楼xieqingbin(云中帆)回复于 2003-10-17 14:04:28 得分 0

谢谢楼主Top

15 楼lxcc()回复于 2003-10-17 14:17:09 得分 0

好!收藏Top

16 楼blue_butterfly(blue.ling)回复于 2003-10-17 14:21:18 得分 0

太好了,我正好需要  
   
  收藏先!  
   
  谢谢楼主!Top

17 楼cloudchen(cloudchen)回复于 2003-10-17 14:40:13 得分 5

一般,ado分页本来就慢,function里就不要response.write了,分页导航可以交给js来做,这样易用性、兼容性更好Top

18 楼bubuy(始不垂翅,终能奋翼)回复于 2003-10-17 14:52:13 得分 0

to:   cloudchen(陈系上.net)    
        呵呵,老大,你这样说其实不对。  
  用ADO分页是比较慢,不过用js来分页  
  的话速度也快不了,还有易用性、兼容性  
  根本就谈不上(我认为),为什么呢,asp  
  本来就是在服务器端运行的,在输出一切  
  前就已经搞定了,怎么谈的上兼容?易用  
  就更说不上了,不知道用js分页导航哪儿  
  易用了?呵呵,以上我的观点,请指教  
           
  Top

19 楼bubuy(始不垂翅,终能奋翼)回复于 2003-10-17 14:55:52 得分 0

如果大家需要快速的分页方法,也是有的  
  那就是用RDS数据控件分页,它除了在第一  
  次运行时较慢,因为它读取所有的数据保存  
  到客户端,以后点击分页的时候是十分快的  
  Top

20 楼cloudchen(cloudchen)回复于 2003-10-17 15:00:40 得分 0

我说的是分页的按钮,就是下一页上一页这种,asp其实只要得到几个数据就可以了,总记录数、每页记录数、当前页数就可以了,  
   
  传几个数字给js就可以了,你看你这个要该一下显示的方式,或者改改css多麻烦,还要来该function,这还有什么意思,这样不就等于是subTop

21 楼bubuy(始不垂翅,终能奋翼)回复于 2003-10-17 15:09:59 得分 0

还有一种分页方法,那就是用数据库来分页  
  比如说SQL   Server,比ADO要快很小一点点,  
  但是感觉很麻烦。所以个人认为还是用ADO  
  分页比较经典。  
  当然其它的分页方法没有接触过,不论...Top

22 楼faib920(Believe Oneself,Believe Lover.)回复于 2003-10-17 15:19:38 得分 5

我这里也有一个  
   
  <%  
  rs.open   "SELECT...",,1,1  
  rs.pagesize=10  
  if   request("Page")=""   then  
  page=1  
  else  
  page=request("Page")  
  end   if  
  rs.absolutepage=page  
   
  response.write   "10篇/页   "&page&"/"&rs.recordcount  
  '首页上一页  
  if   cint(page)>1   then    
  response.write   "<a   href='***.asp?Page=1'>首页</a>|<a   href='***.asp?Page="&page-1&"'>上一页</a>|"  
  else  
  response.write   "首页|上一页|"  
  end   if  
  '列出页号  
  for   i=1   to   rs.pagecount  
  if   i<>rs.absolutepage   then    
  response.write   "<a   href=***.asp?Page="&i&"   class=a2>"&i&"</a>   "  
  else  
  response.write   i&"   "  
  end   if  
  next  
  '末页下一页  
  if   cint(page)<rs.pagecount   then    
  response.write   "|<a   href='***.asp?Page="&page+1&"'>下一页</a>|<a   href='***.asp?Page="&rs.pagecount&"'>末页</a>"  
  else  
  response.write   "|下一页|末页"  
  end   if  
  '用列表框  
  %>  
  <select   name="page"   onChange="location=this.options[this.selectedIndex].value">  
  <%for   i=1   to   rs.pagecount  
  if   i=rs.absolutepage   then    
  response.write   "<option   value=***.asp?Page="&i&"   selected>"&i&"</option>"  
  else  
  response.write   "<option   value=***.asp?Page="&i&">"&i&"</option>"  
  end   if  
  next%>  
  </select>  
  <%  
  ...  
  ...  
  rs.close  
  %>Top

23 楼bubuy(始不垂翅,终能奋翼)回复于 2003-10-17 15:21:10 得分 0

to:   cloudchen(陈系上.net)    
          说的不清楚,小弟问一下:  
  你的意思是不是先把所有记录  
  获得,然后存为js数组或别的  
  客户端东西?然后在用js控制  
  输出?  
          对于显示方式,大家各有  
  不同,所以把表头和表尾标出  
  来好让大家修改,这应该是比  
  较容易的吧Top

24 楼wangkemei(女孩)回复于 2003-10-17 17:12:39 得分 0

upTop

25 楼long02435(蓝天)回复于 2003-10-17 19:28:19 得分 0

upTop

26 楼blueshell521(藍冰塊兒)回复于 2003-10-17 20:13:30 得分 0

請問,能不能提供一個下載的asp代碼  
  Top

27 楼debug2003(DEBUG)回复于 2003-10-17 20:41:27 得分 0

没时间看   先收这     呵呵  
  我要多多想你们学习Top

28 楼bill1980(☆BOOK诗意☆)回复于 2003-10-17 20:47:18 得分 0

UPTop

29 楼suhuoqiang(小心女人.Net)回复于 2003-10-17 21:39:17 得分 0

太感人了Top

30 楼htao007()回复于 2003-10-17 22:17:42 得分 0

我来说一下:最近在看xml,感觉如果分页,用xml也不错的Top

31 楼yaozhg(网站开发架构师)回复于 2003-10-17 22:51:37 得分 0

你的看了,有时候我也不知道怎么搞才会有效率.  
   
  我现在喜欢用  
  sql="select   top   10   *   from   where..........................Top

32 楼liuyear(http://bczs.net 编程知识)回复于 2003-10-17 22:52:26 得分 0

大量数据集分页效率如何?Top

33 楼siyou(QQ~在线)回复于 2003-10-17 22:59:16 得分 5

老实说,这个分页的函数不好。  
  一来,函数难用,难提供相应的方法与属性  
  二来,分页方法不对,rsDate.absolutepage   =pageNum这种分页方法只会耗费服务器的大部分资源,如果分页数上千的话,这种方法几十个就能让服务器完蛋了  
   
  我不是有心在这里捣乱,其实之前我写了一个类的,用于分页,CSDN不少网友也有了,这次我放出来。用类比用函数要好得多,而且使用方便,而且不用自己创建RS,也不用知道分页是怎样实现的,只要会用就OK了,现在我自己也是用这个,快忘了分页是怎样写的了  
   
  http://www.patentcn.com/web.rar  
   
  有例程及说明,其实分页就是这么简单  
  Top

34 楼siyou(QQ~在线)回复于 2003-10-17 23:08:19 得分 0

再补充一下,什么RDS等的分页都是没用的,一次把数据都读出来的话,小数据量还可以,几千上万,如果几十万,几百万的话,服务器就完蛋了,要什么,就读什么,才是可行之道Top

35 楼siyou(QQ~在线)回复于 2003-10-17 23:43:19 得分 0

修改了一下,多了一个属性,另外,这个分页也可以用于数据查找的,数据查找的SQL语句先用COOKIE记录下来,然后在  
  Example.strsql   =   "select   *   from   exp"       'sql语句  
   
  这里不用"select   *   from   exp",而是用COOKIE记录下的那个语句,就能作到查找分页的原理了Top

36 楼inelm(木野狐)回复于 2003-10-18 00:04:01 得分 5

用存储过程输出   xml,   配合   xsl   解析最好。Top

37 楼windancer(^_^)回复于 2003-10-18 01:19:24 得分 25

为了支持澎湃兄,顺便要点小分:P  
  <%  
  '===========================================================  
  '分页类,大体思想由.Net的DataGrid的使用方式而来  
  '功能:自动生成datagrid列表头和内容,以及分页栏  
  '根据网友bubuy   (澎湃   NoMoneyToBuy)得分页函数修改成类  
  '使用示例:  
  'dim   DG  
  'dim   Url  
  'dim   Fld(2)  
  'dim   FldName(2)  
  'dim   FldWidth(2)  
  'Fld(0)   =   "ID"  
  'Fld(1)   =   "Title"  
  'Fld(2)   =   "Input_Date"  
  'FldName(0)   =   "编号"  
  'FldName(1)   =   "标题"  
  'FldName(2)   =   "录入日期"  
  'FldWidth(0)   =   "10%"  
  'FldWidth(1)   =   "60%"  
  'FldWidth(2)   =   "30%"  
  'set   DG   =   new   DataGrid  
  'DG.DataSource   =   rs_Grid  
  'DG.titleColor   =   "#DCE19D"  
  'DG.PageSize   =   1  
  'DG.Fields   =   Fld  
  'DG.FieldsName   =   FldName  
  'DG.fieldWidth   =   FldWidth  
  'Url   =   request.ServerVariables("URL")   &   "?Param=testParameter"//存在原有参数的情况  
  'DG.Url   =   Url  
  'DG.Generate()  
  '=============Designed   By   windancer   2003.10.17===============  
  Class   DataGrid  
      Private   obj_RecordSet   '   recordset  
      Private   int_PageSize '   每页纪录数  
      '两个数组保存数据库字段名和中文名称  
      Private   Arr_Field '   数据库字段  
      Private   Arr_FieldName '   字段显示名称()  
      Private   Arr_FieldWidth '   字段显示宽度  
      Private   str_TitleColor '   表头颜色#efffce  
      Private   str_Url '请求的URL  
      Private   str_Error                 '   出错信息  
   
      Private   Sub   Class_Initialize()  
      int_PageSize   =   10  
      str_TitleColor   =   "#ffffff"  
      str_Error   =   ""  
      End   Sub  
  '===============================================================  
  '属性信息  
  '================================================================  
  '-----------------------------------  
  '数据源,暂时只支持RecordSet  
  '-----------------------------------  
      Public   Property   Let   dataSource(obj)  
          set   obj_RecordSet   =   obj  
      End   Property  
       
      Public   Property   Let   pageSize(intValue)  
          int_PageSize   =   intValue  
      End   Property  
   
      Public   Property   Get   pageSize  
          PageSize=   int_Categoryid  
      End   Property  
       
      Public   Property   Let   Fields(Arr)  
          Arr_Field   =   Arr  
      End   Property  
   
      Public   Property   Get   Fields  
          Fields=   Arr_Field  
      End   Property  
       
      Public   Property   Let   fieldsName(Arr)  
          Arr_FieldName   =   Arr  
      End   Property  
   
      Public   Property   Get   fieldsName  
          fieldsName=   Arr_FieldName  
      End   Property  
       
      Public   Property   Let   fieldWidth(Arr)  
          Arr_FieldWidth   =   Arr  
      End   Property  
   
      Public   Property   Get   fieldWidth  
          fieldWidth=   Arr_FieldWidth  
      End   Property  
       
      Public   Property   Let   titleColor(strValue)  
          str_TitleColor   =   strValue  
      End   Property  
   
      Public   Property   Get   titleColor  
          titleColor=   str_TitleColor  
      End   Property  
      '-----------------------------------------------------  
      '这个属性是为了保存Url路径  
      '如果当前路径带有参数,那么就用&Page=x,否则就用?Page=x  
      '------------------------------------------------------  
      Public   Property   Let   Url(StrValue)  
          str_Url   =   StrValue  
      End   Property  
   
      Public   Property   Get   Url  
          Url=   str_Url  
      End   Property  
   
  '================================================================  
  '方法  
  '================================================================  
  '----------------------------------------------------------------  
  '显示当前错误  
  '----------------------------------------------------------------  
  Private   Sub   ShowLastError()  
  response.Write(str_Error)  
  response.End()  
  End   Sub  
  '----------------------------------------------------------------  
  'Generate()  
  '利用ado分页  
  '-----------------------------------------------------------------  
  Public   Sub   Generate()  
  '----检查参数--------------------------  
  Check  
  '---------变量声明-----------------------------------  
  Dim   FieldCount '显示字段  
  FieldCount   =   Ubound(Arr_Field)   +   1  
    Dim   CurrentPage '当前页  
  Dim   PgCount '总页数  
  Dim   RecCount '记录数,本来用rs.recordCount可以取到,保存下来效率会比较高  
  Dim   HasOtherParam 'URL是否包含其他参数  
  Dim   PageParam '当前分页Url参数  
  Dim   PageInfomation '当前分页状态信息  
  Dim   Seperator '设置分隔符  
  Seperator   =   "&nbsp;&nbsp;"  
  '-------------处理Url参数---------------------------  
  if   instr(str_Url,"?")>0   then  
  HasOtherParam   =   true  
  PageParam   =   "&Page="  
  else  
  HasOtherParam   =   false  
  PageParam   =   "?Page="  
  end   if  
  '----------获取当前页--------------------------------  
  CurrentPage   =   request.QueryString("Page")  
  if   CurrentPage=""   then  
  CurrentPage=1  
  else  
  CurrentPage=Cint(CurrentPage)  
  end   if  
  '-----------处理数据源------------------------------  
  obj_RecordSet.PageSize   =   int_PageSize  
  RecCount   =   obj_RecordSet.RecordCount  
  PgCount   =   obj_RecordSet.PageCount  
  IF   obj_RecordSet.Eof   Then  
  Response.Write("<center><font   stlye='font-size:14px;'   color='#ff0000'>对不起,没有记录!</font></center>")  
  Else  
  '-----------处理ADO分页----------------------------  
  IF   CurrentPage   <   1   Then    
  CurrentPage   =   1  
  Else  
  If   CurrentPage>PgCount   Then  
  CurrentPage   =   PgCount  
  End   If  
  End   IF  
  obj_RecordSet.absolutepage   =   CurrentPage  
   
  Response.Write("<table   width=100%   border='0'   cellpadding='0'   cellspacing='0'   style='font-size:12px;'>")    
  '---------------翻页链接-----------------------------  
  Dim   FirstLink,PrevLink,NextLink,LastLink   '定义向上和向下翻的变量  
  '-----------------------首页-------------------------  
  if   CurrentPage>1   then  
  FirstLink   =   "<a   href='"   &   URL   &   PageParam   &   "1'>首页</a>"  
  PrevLink   =   "<a   href='"   &   URL   &   PageParam   &   Cstr(CurrentPage-1)   &   "'>上一页</a>"  
  else  
  FirstLink   =   "首页"  
  PrevLink   =   "上一页"  
  end   if  
  '------------下一页----------------  
  if   CurrentPage<PgCount   then  
  NextLink   =   "<a   href='"   &   URL   &   PageParam   &   Cstr(CurrentPage+1)   &   "'>下一页</a>"  
  LastLink   =   "<a   href='"   &   URL   &   PageParam   &   PgCount   &   "'>尾页</a>"  
  else  
  NextLink   =   "下一页"  
  LastLink   =   "尾页"  
  end   if  
  PageInfomation   =   FirstLink   &   Seperator   &   PrevLink   &   Seperator   &   NextLink   &   Seperator   &   LastLink   &   Seperator   &   "每页"   &   Cstr(int_PageSize)   &   "条记录"   &   Seperator   &     "共"   &   PgCount   &   "页"   &   Seperator   &   "目前第"   &   CurrentPage   &   "页"   &   Seperator  
  Response.Write("<tr><td   align=center>")  
  Response.Write("<table   width='100%'   border='1'   cellpadding='2'   cellspacing='2'   bordercolor='#999999'>")  
  '---------------设置表头-----------------  
  Response.Write("<tr   bgcolor='"   &   str_TitleColor   &   "'>")  
  Dim   i  
  For   i=0   to   FieldCount   -1  
  Response.Write("<td   align='center'   width='"   &   Arr_FieldWidth(i)   &   "'><font   style='font-size:14px;'><b>"   &   Arr_FieldName(i)   &   "</b></font></td>")  
  Next  
  Response.Write("</tr>")  
  '---------------------输出内容---------------------------------  
  i=0  
  While   (not   obj_RecordSet.EOF)   and   i<int_PageSize  
  Dim   Cursor  
  Response.Write("<tr>")  
  For   Cursor   =   0   to   FieldCount   -1  
        Response.Write("<td   align='center'>"   &   obj_RecordSet(Arr_Field(Cursor))   &   "</td>")  
  Next  
  Response.Write("</tr>")  
  i=i+1  
  obj_RecordSet.MoveNext  
  Wend  
  '------------------------输出分页条------------------------------------  
  Response.Write("<tr><td   align='right'   colspan='"   &   Cstr(FieldCount)   &   "'>"   &   PageInfomation   &   "</td></tr>")  
  response.Write("</table></td></tr></table>")  
      End   IF  
  End   Sub  
  '----------检查参数是否正确---------------  
  Private   Sub   Check()  
  if   Ubound(Arr_Field)<>Ubound(Arr_FieldName)   then  
  str_Error="Fields数组和FieldName数组维数必须相同"  
  end   if  
  if   obj_RecordSet=empty   then  
  str_Error="数据源不能为空,请设置dataSource属性"  
  end   if  
  if   int_PageSize=""   then  
  str_Error="数据源不能为空"  
  end   if  
  ShowLastError  
  End   Sub  
  End   Class  
   
   
  %>Top

38 楼windancer(^_^)回复于 2003-10-18 01:22:51 得分 0

刚才一直在写,没看到上面几位大侠的留言,申明一下:  
  我刚才改自楼主函数的分页类没有考虑过什么效率问题,主要从重用性上考虑,当然功能还待扩展。  
   
  如果对效率要求比较高的,还是考虑用存储过程"要多少取多少"Top

39 楼windancer(^_^)回复于 2003-10-18 01:26:25 得分 0

感觉在style的定义上还要多加一些属性Top

40 楼masterlijianfei(田螺)回复于 2003-10-18 10:46:05 得分 5

提供一点小建议,假如每页10条纪录,那么第一页就显示select   top(10)   *   from   [tablename]   where   ...,第二页取20条出来分页select   top(20)   *   from   [tablename]   where   ...,如此类推select   top(n*10)   *   from   [tablename]   where   ...,这样的效率会高很多,就算数据十分庞大,数据库一次才取10条,20条纪录来分页,况且浏览的时候一般看3~5页基本上就解决问题了,大家评论吧,我就是这样节省服务器的资源的Top

41 楼sandyxxx(一天到晚游泳的鱼)回复于 2003-10-18 10:59:08 得分 0

好象很复杂呀.  
  ----------------------------------------------------------------------------------  
  <%dim   spl,curpage,i,rs,theday,fl,rs2  
  nclassid=trim(request("nclassid"))  
  set   rs2=server.createobject("adodb.recordset")  
  sql="SELECT     *   from   article   where   nclassid="&cstr(nclassid)&"   ORDER   BY   articleid   DESC"  
  rs2.open   sql,conn,1,1%>  
  --------------------------------------------------------------------------------  
  下面是一个表格大家保存成.asp就可以了,连同上面,把你数据库中相应的字段改好了就可以了  
  <table   width="100%"   border="0"   cellspacing="0"   cellpadding="0">  
                              <tr>    
                                  <td   width="2%"   rowspan="3">&nbsp;</td>  
                                  <td   width="98%"   height="16"   valign="top">&nbsp;</td>  
                              </tr>  
                              <tr>    
                                  <td><table   align=center   border=0   cellpadding=0   cellspacing=0    
                              width=100%>  
                                          <tbody>  
                                              <tr>    
                                                  <td   height="56"   valign="top">    
                                                      <%   page=request.QueryString(page)  
    if   request("page")=""   then  
      curpage   =   1  
                          else  
  curpage   =   cint(request("page"))  
                          end   if  
  rs2.pagesize=25  
  rs2.absolutepage   =   curpage  
  for   i   =   1   to   rs2.pagesize  
  response.write   "<li   type=circle><a   href='content.asp?articleid="&   rs2("articleid")&   "'   target=_blank><font   size=2>"  
  'if   not   isempty(rs("img"))   then  
  'response.write   "<font   color=#FF0400   font   size=1>[图文]</font>"  
  'end   if  
  response.write   trim(rs2("title"))   &   "</font></a><font   color=#6365CE   font   size=1>("  
  theday=cstr(YEAR(rs2("dateandtime")))&"-"&cstr(MONTH(rs2("dateandtime")))&"-"&cstr(DAY(rs2("dateandtime")))  
                                  response.write   theday   &   ")</font>"  
  rs2.movenext  
  if   rs2.eof   then  
  i=i+1  
                                      exit   for  
                                  end   if  
  next   %>  
                                                  </td>  
                                              </tr>  
                                          </tbody>  
                                      </table></td>  
                              </tr>  
                              <tr>    
                                  <td   height="31"><div   align="center"   width=100%>    
                                          <div   align="center"   width=100%>    
                                              <div   align="center"   width=100%>    
                                                  <%    
        '   response.write   "<hr   size=0   width='98%'><div   align=center>"  
  response.write   "<font   size=2   >第</font><font   size=2   color=red>"   +   cstr(curpage)   +   "</font><font   size=2   >页/总</font><font   size=2   color=red>"   +   cstr(rs2.pagecount)   +   "</font><font   size=2   >页</font>   "  
  response.write   "<font   size=2   >本页</font><font   size=2   color=red>"   +   cstr(i-1)   +   "</font><font   size=2   >条/总</font><font   size=2   color=red>"   +   cstr(rs2.recordcount)   +   "</font><font   size=2   >条</font>"  
  if   curpage   =   1   then   %>  
                                                  <font   color="#000000"   size="2">首页   前页</font>    
                                                  <%else  
  response.write   "<font   size=2   ><a   href='xlmore.asp?nclassid="   &   cstr(nclassid)   &   "&page=1'>首页</a></font>   <font   size=2   ><a   href='xlmore.asp?nclassid="   &   cstr(nclassid)   &   "&page="   &   cstr(curpage-1)   &   "'>前页</a></font>   "  
  end   if  
  if     curpage   =   rs2.pagecount   then   %>  
                                                  <font   color="#000000"   size="2">后页   末页</font>    
                                                  <%else  
  response.write   "<font   size=2   ><a   href='xlmore.asp?nclassid="   &   cstr(nclassid)   &   "&page="   &   cstr(curpage+1)   &   "'>后页</a></font>   <font   size=2   ><a   href='xlmore.asp?nclassid="   &   cstr(nclassid)   &   "&page="   &   cstr(rs2.pagecount)   &   "'>末页</a></font>   "  
  end   if  
  rs2.close  
          set   rs2=nothing  
          conn.close  
          set   conn=nothing  
  %>  
                                              </div>  
                                          </div>  
                                      </div></td>  
                              </tr>  
                          </table>Top

42 楼tfy_002(林子)回复于 2003-10-18 11:01:02 得分 0

谢谢楼主,我现在正好需要!!!!!!!!!!!!!!  
  收藏Top

43 楼hxy2003(asfd)回复于 2003-10-18 12:01:00 得分 0

UPTop

44 楼qunluo(最爱白菜)回复于 2003-10-18 13:42:18 得分 0

又学了一招!!!  
  好功夫!!!Top

45 楼ChinaE114(三少爷)回复于 2003-10-18 14:02:58 得分 0

masterlijianfei(田螺)   :这样就无法获得总的参数了,如共有几条数据,分几页等Top

46 楼liuzxit(dotnetRGB.com)回复于 2003-10-18 15:11:10 得分 0

只是对ado的分页功能稍做加工而已   ,没多大意义,还不如用xml来做Top

47 楼mycl3344(都市浪人)回复于 2003-10-19 11:38:22 得分 0

無法跳轉﹐能不能實現啊?實現了發我一份如何?  
  coldwindfan@163.comTop

48 楼bubuy(始不垂翅,终能奋翼)回复于 2003-10-20 09:39:16 得分 0

呵呵,感谢大家,因为星期陆和星期天不上班  
  所以没来回复大家,大家提得意见很好,我一  
  定注意。  
  在这里特别感谢   windancer(风精灵)    
   
  我马上结帐了。  
   
  还有有些大哥说要是读上千条信息会影响效率,  
  其实我不占成这种说法,为什么呢?  
      在我们现时得网页中分页上千条得网页太少呢  
  我常看到得就是搜索引擎;它得分页根本就不是一回事了。  
      还有大家说上千条记录影响效率,我不这么认为,不知道  
  大家用上千条得记录试过没有,没有请试试。Top

49 楼bubuy(始不垂翅,终能奋翼)回复于 2003-10-20 09:47:18 得分 0

to   siyou(QQ~在线)    
  你说得也很不错,在此感谢你。  
   
  不过我这里也有几句话要说,你说得  
  情况给我得感觉就想是要大家写好得  
  SQL语句,而不是分页问题,呵呵。。。  
   
  对了,还有,如果一个服务器读上千条得  
  数据都会出问题得话,请你换一家得服务  
  器用用,呵呵,像我们这里得服务器有时  
  要读上几十万条得记录,依然是毫无问题  
  得,我们用得是SQLServer数据库。Top

相关问题

  • 分页函数
  • 动网分页函数
  • 两个PHP通用分页函数
  • 50分求php在mysql下的分页函数
  • 一个实用的C函数
  • 大家有C#实用的函数贴出来好吗?
  • 这在分页程序中用了session函数,可是应该怎么解开呢?
  • 问一个很愚蠢的问题,我的分页怎么无法实现?函数不响应!
  • 看了一个贴,决定放一个分页函数,多种样式,可自行再添加样式。
  • 请问谁有这样的分页函数呢?就是< 1 2 3 4 5 6 7 8 9 >这样的<>代表上一页下一页.是函数哦!

关键词

  • .net
  • 函数
  • 数据
  • 服务器
  • 语句
  • 数据库
  • 修改
  • 属性
  • js
  • 分页

得分解答快速导航

  • 帖主:bubuy
  • cloudchen
  • faib920
  • siyou
  • inelm
  • windancer
  • masterlijianfei

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo