您现在的位置:首页 >> Asp.NET >> 内容

asp.net几种分页的写法

时间:2015-8-24 15:24:10 点击:

  核心提示:1.分页效果:首页前101 2 3 4 5 6 7 8 9 10后10尾页%Dim iPageCount,i,pageStart,pageEndiPageCount = 30 '假设有30页if re...

 1.分页效果:首页 前10  1 2 3 4 5 6 7 8 9 10  后10  尾页

<% 
Dim iPageCount,i,pageStart,pageEnd 
iPageCount = 30 '假设有30页 
if request("display")="" then 
curpage=1 
else 
curpage=cint(request("display")) 
end if 
'页数从pageStart开始 
pageStart = ((curpage-1)/10)*10+1 
'页数从pageEnd结束 
pageEnd = pageStart + 9 
'如果超过总的记录数,则pageEnd等于总记录数 
if pageEnd > iPageCount Then pageEnd = iPageCount 
Response.Write("第" & curpage & "/" & iPageCount & "页") 
if pageStart > 1 then Response.Write("<a href=test.asp?display=" & pageStart - 10 & "><<</a>&nbsp;") 
for i = pageStart to pageEnd 
Response.Write("<a href='?display=" & i & "'>第" & i & "页</a> ") 
next 
If pageEnd < iPageCount Then Response.Write("<a href=test.asp?display=" & pageStart + 10 & ">>></a>") 
%> 

2.分页效果: 共有 X 篇文章 首页 前一页 后一页 尾页

 '***********************************************
'过程名:showpage
'作  用:显示“上一页 下一页”等信息
'参  数:sfilename  ----链接地址
'   totalnumber ----总数量
'   maxperpage  ----每页数量
'   ShowTotal   ----是否显示总数量
'   ShowAllPages ---是否用下拉列表显示所有页面以供跳转。有某些页面不能使用,否则会出现JS错误。
'   strUnit     ----计数单位
'***********************************************
sub showpage(sfilename,totalnumber,maxperpage,ShowTotal,ShowAllPages,strUnit)
 dim n, i,strTemp,strUrl
 if totalnumber mod maxperpage=0 then
     n= totalnumber / maxperpage
   else
     n= totalnumber / maxperpage+1
   end if
   strTemp= "<table align='center'><form name='showpages' method='Post' action='" & sfilename & "'><tr><td>"
 if ShowTotal=true then 
  strTemp=strTemp & "共 <b>" & totalnumber & "</b> " & strUnit & "&nbsp;&nbsp;"
 end if
 strUrl=JoinChar(sfilename)
   if CurrentPage<2 then
      strTemp=strTemp & "首页 上一页&nbsp;"
   else
      strTemp=strTemp & "<a href='" & strUrl & "page=1'>首页</a>&nbsp;"
      strTemp=strTemp & "<a href='" & strUrl & "page=" & (CurrentPage-1) & "'>上一页</a>&nbsp;"
   end if
' Response.Write(strTemp)

   if n-currentpage<1 then
      strTemp=strTemp & "下一页 尾页"
   else
      strTemp=strTemp & "<a href='" & strUrl & "page=" & (CurrentPage+1) & "'>下一页</a>&nbsp;"
      strTemp=strTemp & "<a href='" & strUrl & "page=" & n & "'>尾页</a>"
   end if
' Response.Write(strTemp)
    strTemp=strTemp & "&nbsp;页次:<strong><font color=red>" & CurrentPage & "</font>/" & n & "</strong>页 "
    strTemp=strTemp & "&nbsp;<b>" & maxperpage & "</b>" & strUnit & "/页"
 if ShowAllPages=True then
  strTemp=strTemp & "&nbsp;转到:<select name='page'size='1'onchange='javascript:submit()'>"   
     for i = 1 to n   
      strTemp=strTemp & "<option value='" & i & "'"
   if cint(CurrentPage)=cint(i) then strTemp=strTemp & " selected "
   strTemp=strTemp & ">第" & i & "页</option>"   
     next
  strTemp=strTemp & "</select>"
 end if
 strTemp=strTemp & "</td></tr></form></table>"
 response.write strTemp
end sub

'***********************************************
'函数名:JoinChar
'作  用:向地址中加入 ? 或 &
'参  数:strUrl  ----网址
'返回值:加了 ? 或 & 的网址
'***********************************************
function JoinChar(strUrl)
 if strUrl="" then
  JoinChar=""
  exit function
 end if
 if InStr(strUrl,"?")<len(strUrl) then 
  if InStr(strUrl,"?")>1 then
   if InStr(strUrl,"&")<len(strUrl) then 
    JoinChar=strUrl & "&"
   else
    JoinChar=strUrl
   end if
  else
   JoinChar=strUrl & "?"
  end if
 else
  JoinChar=strUrl
 end if
end function

调用的时候可以这样调用:

showpage strFileName,totalPut,MaxPerPage,true,false,"篇文章"

strfilename:连接文件
totalPut:记录总数
maxperpage:每页显示数量

3.比较灵活的方式,可以设定分页显示效果

'分页列表函数
'url 跳转的地址
'querry ?后的参数
'Separator 分隔符
'ListType 分页类型
'类型:0 "第一页 | 前一页 | 下一页 | 最后页"
'类型:1 "1 | 2 | 3 | 4 | ..........| 下一页"
'类型:2 "第一页 | 前十页 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 后十页 | 最后页"
'ListLink 链接使用的样式

sub PageList(ListType,url,querry,Separator,ListLink)
 if Separator="" then Separator="|"
 if ListType="" then ListType="0"
 select case ListType
  case "0"
   response.write"第"&currentpage&"/"&n&"页&nbsp;&nbsp;" 
   response.write"共"&totalrec&"条信息&nbsp;&nbsp;"
   if currentpage <= 1 then
    response.write"第一页&nbsp;"&Separator&"&nbsp;"
    response.write"前一页&nbsp;"&Separator&"&nbsp;"
   else
    response.write"<a href="""&url&"?page=1&"&querry&""" class="""&ListLink&""">第一页</a>&nbsp;"&Separator&"&nbsp;" 
    response.write"<a href="""&url&"?page="&currentpage-1&"&"&querry&"""  class="""&ListLink&""">前一页</a>&nbsp;"&Separator&"&nbsp;" 
   end if
   if currentpage = n then
    response.write"下一页&nbsp;"&Separator&"&nbsp;"
    response.write"最后页&nbsp;"
   else
    response.write"<a href="""&url&"?page="&currentpage+1&"&"&querry&"""  class="""&ListLink&""">下一页</a>&nbsp;"&Separator&"&nbsp;"
    response.write"<a href="""&url&"?page="&n&"&"&querry&""" class="""&ListLink&""">最后页</a>&nbsp;"
   end if
  case "1"
   if currentpage < n then
    response.write"<a href="""&url&"?page="&currentpage+1&"&"&querry&""" class="""&ListLink&""">下一页</a>&nbsp;"    
   else
    response.write"下一页&nbsp;"    
   end if
   for i=1 to n
    if cstr(i)=cstr(currentpage) then
     response.write "<b>"&i&"</b>"&"&nbsp;"&Separator&"&nbsp;"
    else
     response.write"<a href="""&url&"?page="&i&"&"&querry&""" class="""&ListLink&""">"&i&"</a>&nbsp;"&Separator&"&nbsp;"  
    end if
   next
  
  case "2"
   PageMerCout=10 '每次可翻的最大页数
  '取得记录的最大页码段
  if n mod PageMerCout=0 then
   MaxPageFiled=n/PageMerCout
  else
   MaxPageFiled=n/PageMerCout+1
  end if
  '判断当前页所在的页码段
  if currentpage mod PageMerCout =0 then
   CurrPageFiled=currentpage/PageMerCout
  else
   CurrPageFiled=currentpage/PageMerCout+1
  end if
  '取得当前页码段的最大页码和最小页码
  MaxPageNo=CurrPageFiled*PageMerCout
  MinPageNo=(CurrPageFiled-1)*PageMerCout+1
  '输出 “第一页 | 前十页 |”
  if currentpage<=1 then
   response.write"第一页&nbsp;"&Separator&"&nbsp;" 
  else
   response.write"<a href="""&url&"?page=1&"&querry&""" class="""&ListLink&""">第一页</a>&nbsp;"&Separator&"&nbsp;" 
  end if
  if CurrPageFiled<=1 then
   response.write"前十页&nbsp;"&Separator&"&nbsp;"       
  else
   response.write"<a href="""&url&"?page="&MinPageNo-PageMerCout&"&"&querry&""" class="""&ListLink&""">前十页</a>&nbsp;"&Separator&"&nbsp;"       
  end if
  '输出当前页码段
  for i=MinPageNo to MaxPageNo
   if i<=n then
    if cstr(i)=cstr(currentpage) then
     response.write "<b>"&i&"</b>"&"&nbsp;"&Separator&"&nbsp;"
    else
     response.write"<a href="""&url&"?page="&i&"&"&querry&""">"&i&"</a>&nbsp;"&Separator&"&nbsp;"  
    end if
   end if
  next
  '输出 “后十页 | 最后页”
  if CurrPageFiled>=MaxPageFiled then
   response.write"后十页&nbsp;"&Separator&"&nbsp;"       
  else
   response.write"<a href="""&url&"?page="&MaxPageNo+1&"&"&querry&""" class="""&ListLink&""">后十页</a>&nbsp;"&Separator&"&nbsp;"       
  end if
  if currentpage>=n then
   response.write"最后页&nbsp;"  
  else
   response.write"<a href="""&url&"?page="&n&"&"&querry&""" class="""&ListLink&""">最后页</a>&nbsp;"  
  end if
 end select
end sub

4.一个比较简单的

on error resume next 
'分页程序 
function fy(scount,pgsize,pg,url) 
'scount记录总数 
'pgsize每面记录数 
'pg当前页 
'url转向的地址,运行本函数后会在后面加上"&page=页号" 
dim pgcount,i,j,mh,k 
mh=chr(34) '不好意思,是双引号


'cint()会四舍五入,所以不得不加个k 
k=(scount+pgsize-1)/pgsize 
pgcount=cint((scount+pgsize-1)/pgsize) 
if pgcount>k then pgcount=pgcount-1

response.write "<a href="+mh+url+"&page=1"+mh+">[第一页]</a>&nbsp;" 
if cint(pg)>cint(1) then 
response.write "<a href="+mh+url+"&page="+cstr(pg-1)+mh+">[上一页]</a>&nbsp;" 
end if 
if cint(pg)>5 then 
i=cint(pg)-5 
else 
i=1 
end if

if cint(pgcount)<cint(pg+5) then 
j=pgcount 
else 
j=pg+5 
end if


while cint(i)<=cint(j)

if cint(i)=cint(pg) then 
response.write cstr(i)+"&nbsp;" 
else 
response.write "<a href="+mh+url+"&page="+cstr(i)+mh+">"+cstr(i)+"</a>&nbsp;" 
end if 
i=i+1 
wend

if cint(pgcount)>cint(pg) then 
response.write "<a href="+mh+url+"&page="+cstr(pg+1)+mh+">[下一页]</a>&nbsp;" 
end if

response.write "<a href="+mh+cstr(url)+"&page="+cstr(pgcount)+mh+">[最后页]</a>&nbsp;"

end function

版权声明:本文为博主原创文章,未经博主允许不得转载。

作者:不详 来源:网络
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 青春网络编程技术(www.qcfupo.com) © 2020 版权所有 All Rights Reserved.
  • Powered by qcfupo! V3.0sp1
  • 百度友情链接: 百家乐[www.chinawestnews.net/aomenbaijiale/] 赌博网[www.chinawestnews.net/amdbwz/] 海立方[www.bjl.gov.cn/bjgylc/] 娱乐城[www.gtxrmzf.gov.cn/mapai/] 娱乐城[www.hfsf.gov.cn/yfgj/] 威尼斯人[www.hllinkou.gov.cn/baijile/] 澳门威尼斯[www.jjwgj.gov.cn/wnsr/] 888真人[www.lagm.gov.cn/888zhenren/] 百乐坊[www.laoling.gov.cn/blfylc/] 现金网[www.longyu.gov.cn/xjw/] 百家乐[www.chinawestnews.net/ambjl/] 新葡京娱乐场[www.sjzedu.gov.cn/jsylc/] 时时彩[www.snjw.gov.cn/ssc/] 赌博[www.chinawestnews.net/aomendubo/]