1. 程式人生 > 程式設計 >完美的ASP分頁尾本程式碼

完美的ASP分頁尾本程式碼

直接寫成函式的形式,如果輸出生成好的頁碼,然後又程式輸出或儲存到檔案中。

前十頁為一批,第十頁顯示1,2,3…10;第十一頁頁碼就變成了11,12…20
這種模式很多CMS都用到,比如5UCMS。函式名留點版權資訊吧,cs=CatSeven

<%
function csPage(id,all,url1,url2)
	if id<>1 then tmp="<a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" &url1&"1"&url2&""">首頁</a> <a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" &url1&id-1&url2&""">上一頁</a>"
	istart=((id-1)\10)*10+1
	if(all-id)>9 then
		iend=((id-1)\10)*10+10
	else
		iend=all
	end if
	for i=istart to iend
		if i=id then
			tmp=tmp&"<span>"&i&"</span> "
		else
			tmp=tmp&"<a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" &url1&i&url2&""">"&i&"</a> "
		end if
	next
	if id<>all then tmp=tmp&"<a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" &url1&id+1&url2&""">下一頁</a> <a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" &url1&all&url2&""">尾頁</a>"
	csPage=tmp
end function
 
'DEBUG
for j=1 to 40
	response.write "#Page"&j&":"&csPage(j,40,"#TEST_","_View")&"<br />"
next
%>

生成效果如下:
#Page1:1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page2:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page3:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page4:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page5:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page6:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page7:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page8:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁

#Page9:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page10:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page11:首頁 上一頁 11 12 13 14 15 16 17 18 19 20 下一頁 尾頁
#Page12:首頁 上一頁 11 12 13 14 15 16 17 18 19 20 下一頁 尾頁
#Page13:首頁 上一頁 11 12 13 14 15 16 17 18 19 20 下一頁 尾頁
#Page14:首頁 上一頁 11 12 13 14 15 16 17 18 19 20 下一頁 尾頁
#Page15:首頁 上一頁 11 12 13 14 15 16 17 18 19 20 下一頁 尾頁
#Page16:首頁 上一頁 11 12 13 14 15 16 17 18 19 20 下一頁 尾頁
#Page17:首頁 上一頁 11 12 13 14 15 16 17 18 19 20 下一頁 尾頁
#Page18:首頁 上一頁 11 12 13 14 15 16 17 18 19 20 下一頁 尾頁
#Page19:首頁 上一頁 11 12 13 14 15 16 17 18 19 20 下一頁 尾頁
#Page20:首頁 上一頁 11 12 13 14 15 16 17 18 19 20 下一頁 尾頁
#Page21:首頁 上一頁 21 22 23 24 25 26 27 28 29 30 下一頁 尾頁
#Page22:首頁 上一頁 21 22 23 24 25 26 27 28 29 30 下一頁 尾頁
#Page23:首頁 上一頁 21 22 23 24 25 26 27 28 29 30 下一頁 尾頁
#Page24:首頁 上一頁 21 22 23 24 25 26 27 28 29 30 下一頁 尾頁
#Page25:首頁 上一頁 21 22 23 24 25 26 27 28 29 30 下一頁 尾頁
#Page26:首頁 上一頁 21 22 23 24 25 26 27 28 29 30 下一頁 尾頁
#Page27:首頁 上一頁 21 22 23 24 25 26 27 28 29 30 下一頁 尾頁
#Page28:首頁 上一頁 21 22 23 24 25 26 27 28 29 30 下一頁 尾頁
#Page29:首頁 上一頁 21 22 23 24 25 26 27 28 29 30 下一頁 尾頁
#Page30:首頁 上一頁 21 22 23 24 25 26 27 28 29 30 下一頁 尾頁
#Page31:首頁 上一頁 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page32:首頁 上一頁 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page33:首頁 上一頁 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page34:首頁 上一頁 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page35:首頁 上一頁 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page36:首頁 上一頁 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page37:首頁 上一頁 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page38:首頁 上一頁 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page39:首頁 上一頁 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page40:首頁 上一頁 31 32 33 34 35 36 37 38 39 40

說實話我並不是很喜歡這種分頁方式,我比較喜歡上次寫的那個。
如果不超過10頁,比如共5頁。1,3,4,5;
如果最末頁減當前頁碼不超過十,頁碼顯示最後10頁;
其他的是前四後五的方法。直接給出程式碼吧

function csPage1(id,url2)
	if id<>1 then tmp="<a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" &url1&"1"&url2&""">首頁</a> <a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" &url1&id-1&url2&""">上一頁</a> "
	if all&lt;10 or id&lt;10 then
		istart=1
		if all&lt;10 then iend=all else iend=10
	elseif all-id&lt;10 then
		istart=all-10
		iend=all
	else
		istart=id-4
		iend=id+5
	end if
 
	for i=istart to iend
		if i=id then
			tmp=tmp&"<span>"&i&"</span> "
		else
			tmp=tmp&"<a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" &url1&i&url2&""">"&i&"</a> "
		end if
	next
	if id<>all then tmp=tmp&"<a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" &url1&id+1&url2&""">下一頁</a> <a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" &url1&all&url2&""">尾頁</a>"
	csPage1=tmp
end function
for j=1 to 40
	response.write "#Page"&j&":"&csPage1(j,"_View")&"<br />"
next

生成效果如下:
#Page1:1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page2:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page3:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page4:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page5:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page6:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page7:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page8:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page9:首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
#Page10:首頁 上一頁 6 7 8 9 10 11 12 13 14 15 下一頁 尾頁
#Page11:首頁 上一頁 7 8 9 10 11 12 13 14 15 16 下一頁 尾頁
#Page12:首頁 上一頁 8 9 10 11 12 13 14 15 16 17 下一頁 尾頁
#Page13:首頁 上一頁 9 10 11 12 13 14 15 16 17 18 下一頁 尾頁
#Page14:首頁 上一頁 10 11 12 13 14 15 16 17 18 19 下一頁 尾頁
#Page15:首頁 上一頁 11 12 13 14 15 16 17 18 19 20 下一頁 尾頁
#Page16:首頁 上一頁 12 13 14 15 16 17 18 19 20 21 下一頁 尾頁
#Page17:首頁 上一頁 13 14 15 16 17 18 19 20 21 22 下一頁 尾頁
#Page18:首頁 上一頁 14 15 16 17 18 19 20 21 22 23 下一頁 尾頁
#Page19:首頁 上一頁 15 16 17 18 19 20 21 22 23 24 下一頁 尾頁
#Page20:首頁 上一頁 16 17 18 19 20 21 22 23 24 25 下一頁 尾頁
#Page21:首頁 上一頁 17 18 19 20 21 22 23 24 25 26 下一頁 尾頁
#Page22:首頁 上一頁 18 19 20 21 22 23 24 25 26 27 下一頁 尾頁
#Page23:首頁 上一頁 19 20 21 22 23 24 25 26 27 28 下一頁 尾頁
#Page24:首頁 上一頁 20 21 22 23 24 25 26 27 28 29 下一頁 尾頁
#Page25:首頁 上一頁 21 22 23 24 25 26 27 28 29 30 下一頁 尾頁
#Page26:首頁 上一頁 22 23 24 25 26 27 28 29 30 31 下一頁 尾頁
#Page27:首頁 上一頁 23 24 25 26 27 28 29 30 31 32 下一頁 尾頁
#Page28:首頁 上一頁 24 25 26 27 28 29 30 31 32 33 下一頁 尾頁
#Page29:首頁 上一頁 25 26 27 28 29 30 31 32 33 34 下一頁 尾頁
#Page30:首頁 上一頁 26 27 28 29 30 31 32 33 34 35 下一頁 尾頁
#Page31:首頁 上一頁 30 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page32:首頁 上一頁 30 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page33:首頁 上一頁 30 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page34:首頁 上一頁 30 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page35:首頁 上一頁 30 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page36:首頁 上一頁 30 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page37:首頁 上一頁 30 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page38:首頁 上一頁 30 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page39:首頁 上一頁 30 31 32 33 34 35 36 37 38 39 40 下一頁 尾頁
#Page40:首頁 上一頁 30 31 32 33 34 35 36 37 38 39 40

上面的程式碼在2009-2010年寫過簡單個兩個分頁(調取頁碼的函式):

現在看有點亂了,最近有重新整理了下程式碼,重寫了ASP的分頁程式碼,生成的分頁程式碼相容BootStrap。程式碼如下:

'PageinationRecordSet 如果返回false,說明 Adodb.RecrodSet集 為空
'RecordSet Adodb.RecrodSet集
'PageId 當前所在頁
'PageSize 每頁顯示多少條?
'*PageCount 返回頁碼總數
function PageinationRecordSet(byref RecordSet,byref PageId,byval PageSize,byref PageCount)
  if RecordSet.eof then
    PageinationRecordSet = false
  else
    RecordSet.PageSize = PageSize
    PageCount = RecordSet.PageCount
    if PageId > PageCount then PageId = PageCount
    RecordSet.absolutePage = PageId
    PageinationRecordSet = true
  end if
end function
 
'PageId 當前所在頁
'PageCount 頁碼總數
'urlTemplate 連結模板
function PageinationPageList(byval PageId,byval PageCount,byval urlTemplate)
  dim codeTemp,iPage
   
  if PageCount > 0 then
    codeTemp = "<ul class=""pagination"">"
     
    if PageId <= 1 then codeTemp = codeTemp & "<li class=""disabled"">" else codeTemp = codeTemp & "<li>"
    codeTemp = codeTemp & "<a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" & replace(urlTemplate,"{pg}",1) & """> 首頁 </a></li>"
    if PageId <= 1 then codeTemp = codeTemp & "<li class=""disabled"">" else codeTemp = codeTemp & "<li>"
    codeTemp = codeTemp & "<a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" & replace(urlTemplate,PageId-1) & """>上一頁</a></li>"
     
    for iPage = PageId - 5 to PageId + 5
      if iPage = PageId then
        codeTemp = codeTemp & "<li class=""active""><a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" & replace(urlTemplate,iPage) & """>" & iPage & "</a></li>"
      elseif iPage < PageId and iPage > 0 then
        codeTemp = codeTemp & "<li><a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" & replace(urlTemplate,iPage) & """>" & iPage & "</a></li>"
      elseif iPage > PageId and iPage <= PageCount then
        codeTemp = codeTemp & "<li><a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" & replace(urlTemplate,iPage) & """>" & iPage & "</a></li>"
      end if
    next
     
    if PageId >= PageCount then codeTemp = codeTemp & "<li class=""disabled"">" else codeTemp = codeTemp & "<li>"
    codeTemp = codeTemp & "<a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" & replace(urlTemplate,PageId + 1) & """>下一頁</a></li>"
    if PageId >= PageCount then codeTemp = codeTemp & "<li class=""disabled"">" else codeTemp = codeTemp & "<li>"
    codeTemp = codeTemp & "<a href=""" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" & replace(urlTemplate,PageCount) & """>尾頁</a></li>"
     
    PageinationPageList = codeTemp & "</ul>"
  end if
end function

測試程式碼:

pgId = Request.QueryString("pageid")  '當前頁碼
pgSize = 10 '每頁大小
rsId = 0
Rs.Open Query,Conn,1,1
if PageinationRecordSet(Rs,pgId,pgSize,pgCount) then
  do while not Rs.Eof and rsId < pgSize
    rsId = rsId + 1
     
    '列表內容
     
    Rs.MoveNext
  loop
end if
Rs.Close
 
'共 pgCount 頁
response.write PageinationPageList(pgId,pgCount,"./list.asp?pageid={pg}") '輸出分頁程式碼

到此這篇關於完美的ASP分頁尾本程式碼的文章就介紹到這了,更多相關ASP分頁內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!