article:
tag:
just test

ASP > ASP?通用文章分页函数(非记录集分页),?返回多个结果,?字典实现?By?shawl.qiu 上一篇 | 下一篇

ASP 通用文章分页函数(非记录集分页), 返回多个结果, 字典实现 By shawl.qiu


说明: 
本函数为文章分页, 非记录集分页
本函数实现将文章分页显示, 并以指定长度显示每一分页
本函数实现不需指定 URL, 自动更替 URL
本函数实现返回多个结果, 为: 分页链接-文章统计信息-文章内容, 由字典实现
如果分页大小大于文章总大小, 分页链接将为空.

显示如:
第1页 第2页 第3页 第4页 第5页 
50,000字/页 1/5页 共235,289字
正文...

注: 显示内容的三个元素可自由变更位置.

附注: 
如果您是在查找 记录集分页函数, 鄙人以前也写过一个, 名为 "ASP VBScript 分页函数 by Stabx, 第三版".
链接:   http://blog.csdn.net/btbtd/archive/2006/05/31/765595.aspx

shawl.qiu
2006-09-04
 http://blog.csdn.net/btbtd

主内容: 分页函数及调用代码
    linenum
  1. <% 
  2.     dim rs, dic
  3.     set rs=createObject("adodb.recordset")
  4.         rs.open "select * from ctat where aid=15783",conn
  5.         'rs.open "select * from ctat where aid=12850",conn
  6.  
  7.         set dic=fAtPgnt(rs("content"),50000,request.queryString("apid"))
  8.             response.write dic("pgnt")&"<br/>"
  9.             response.write dic("info")&"<br/>"
  10.             response.write dic("cnt")&"<br/>"
  11.         set dic=nothing
  12.         rs.close
  13.     set rs=nothing
  14.  
  15.     function fAtPgnt(aStr,pSize,rId)
  16.     ''''''''''''''''''''''''''''''''''''''''''''''''''''''
  17.     'ASP 通用文章分页函数(非记录集分页), 返回多个结果, 字典实现 By shawl.qiu
  18.     ' http://blog.csdn.net/btbtd
  19.     '2006-09-04
  20.     '''''''''''''''''''''''''''
  21.     '输入参数说明:
  22.     'aStr 为要分页的字符串
  23.     'pSize 为每页大小数字
  24.     'rId 为 URL 参数 ID, 默认为 apid, 由函数里的 rName 变量定义
  25.     '''''''''''''''''''''''''''
  26.     '输出参数说明:
  27.     'obj("pgnt") 为文章翻页链接
  28.     'obj("info") 为文章统计信息
  29.     'obj("cnt") 为文章内容
  30.     '''''''''''''''''''''''''''
  31.     'sample call:
  32.     '''''''''''''
  33.     '    dim rs, dic
  34.     '    set rs=createObject("adodb.recordset")
  35.     '        rs.open "select * from ctat where aid=15783",conn
  36.     '        
  37.     '        set dic=fAtPgnt(rs("content"),50000,request.queryString("apid"))
  38.     '            response.write dic("pgnt")&"<br/>"
  39.     '            response.write dic("info")&"<br/>"
  40.     '            response.write dic("cnt")&"<br/>"
  41.     '        set dic=nothing
  42.     '        
  43.     '        rs.close
  44.     '    set rs=nothing
  45.     ''''''''''''''''''''''''''''''''''''''''''''''''''''''
  46.         if isNumeric(pSize)=false or len(aStr)=0 then exit function
  47.         if isNull(rId) or rId="" or isNumeric(rId)=false then rId=1 '如果分页查询ID为空则 ID为 1
  48.         
  49.         dim aStrLen '取文章总长度的变量
  50.             aStrLen=len(aStr)
  51.         
  52.         '智能URL字符串替换
  53.         dim rqs, url, rName
  54.             rqs=request.ServerVariables("QUERY_STRING")
  55.             rName="apid"
  56.         if rqs="" then
  57.             url="?"&rName&"="
  58.         elseif instr(rqs,rName)<>0 then    
  59.             url="?"&replace(rqs,rName&"="&rId,"")&rName&"=" 
  60.         else
  61.             url="?"&replace(rqs,"&"&rName&"="&rId,"")&"&"&rName&"="
  62.         end if
  63.         
  64.         dim tPg '定义总页数变量
  65.             tPg=int(aStrLen/-pSize)*-1
  66.             
  67.         if rId<1 then rId=1 '如果分页查询ID小于1, 则为1
  68.         if cLng(rId)>cLng(tPg) then rId=tPg '如果分页查询ID大于总页数, 则为总页数
  69.             
  70.         dim cPg '定义取当前页字符起始位置变量
  71.         if rId=1 then cPg=1 else cPg=pSize*(rId-1)+1 '读取文章的起始位置
  72.  
  73.         dim dic '定义字典变量
  74.         set dic = createObject("scripting.dictionary")
  75.             if aStrLen<=pSize then '如果分页大小大于正文大小时, 执行以下操作
  76.                 dic.add "pgnt", "" '增加页面链接到字典
  77.                     
  78.                 '增加统计信息到字典
  79.                 dic.add "info", formatNumber(pSize,0)&"字/页 "&rid&"/"&tPg&"页 共"&_
  80.                 formatNumber(aStrLen,0)&"字"
  81.                 
  82.                 dic.add "cnt", mid(aStr,1) '增加内容到字典
  83.                 set fAtPgnt=dic
  84.                 set dic=nothing
  85.                 exit function
  86.             end if
  87.         
  88.             dim i, temp, temp1
  89.             for i=1 to tPg
  90.                 '如果当前查询ID=i, 则加入高亮CSS类
  91.                 if strComp(rId,i,1)=0 then temp1=" class=""hl"""
  92.                 temp=temp&"<a href="""&url&i&""""&temp1&">第"&i&"页</a> "
  93.             next 
  94.             
  95.             dic.add "pgnt", temp '增加页面链接到字典
  96.                 
  97.             '增加统计信息到字典
  98.             dic.add "info", formatNumber(pSize,0)&"字/页 "&rId&"/"&tPg&"页 共"&_
  99.             formatNumber(aStrLen,0)&"字"
  100.             
  101.             dic.add "cnt", mid(aStr,cPg,pSize) '增加文章内容到字典
  102.         set fAtPgnt=dic
  103.         set dic=nothing
  104.     end function 'shawl.qiu code'
  105. %>

@suches
http://btbtd.com/mods/blog/item.php?uid=1&item=3804

发表于 @ 2006-09-04 08:00:00

该文章暂时没有回复
评论内容:
昵称:
验证码: