前述:
1。
需要分頁的檔案:a.asp--------該檔案中調用page_turn.asp中的分頁顯示函數:<%call select_page(xx.xx...)%>
2。分頁顯示檔案page_turn.asp --------這裡包含一個帶參數的顯示函數:private sub select_page(page_num,total),這兩個參數是起碼要傳遞的參數,分別表示當前第幾頁和記錄集的總頁數。
其中a.asp包含page_turn.asp,<!--#include file=page_turn.asp-->
本文:
我在做asp分頁時會碰到一個問題,當分頁地址中帶有除了頁數(pagenum)的其它參數時,通過調用call自訂的分頁函數傳遞可變參數的方式手動添加需要的參數(call selectpage(page_num,total,產品大類a,產品小類b)),然後把每個多出的參數手動的加到selectpage函數的串連中
比如:<a href="xxx.asp?pagenum=2&產品大類名=變數a&產品小類名=變數b">下一頁</a>
如果都是同樣的參數名和數量到好辦,但是如果參數不定,是可變化的就只能在建立一個分頁函數select_page2()了,不靈活很死板,所以我們要通過以下方法來擷取URL值,只要將多出的參數ID和值都賦給一個變數A,即可通用於所有檔案(如:select_page(page_num,total,A))。
如何知道當前頁的URL,特別是URL一般都含有參數,若無參數,則只用“Request.ServerVariables("SCRIPT_NAME")”即可,但含參數的URL如何得到呢?經過網上查詢和研究,用如下函數實現:
1擷取當前Url參數的函數
2Private Function GetUrl()
3Dim ScriptAddress,M_ItemUrl,M_item
4ScriptAddress = CStr(Request.ServerVariables("SCRIPT_NAME")) '取得當前地址
5M_ItemUrl = ""
6If (Request.QueryString <> "") Then
7 ScriptAddress = ScriptAddress & "?"
8 For Each M_item In Request.QueryString
9 If M_item = "page_num" Then Exit for '此處的作用就是過濾掉Page_num這個頁次的參數(該參數是在page_turn.asp中自行設定的,根據個人設定而變),否則每次翻頁都會疊加這個參數,雖然不影響功能,但總歸不太好吧~~
10 If InStr(page,M_Item)=0 Then
11 M_ItemUrl = M_ItemUrl & M_Item &"="& Server.URLEncode(Request.QueryString(""&M_Item&"")) & "&"
12 End If
13 Next
14Else
15ScriptAddress = ScriptAddress & "?"
16end if
17GetUrl = ScriptAddress & M_ItemUrl
18End Function
將以上代碼儲存為任意的asp檔案,然後在需要實現翻頁功能的檔案裡包含一下該檔案,並在翻頁檔案裡將得到的地址賦給一個變數,這裡就叫url吧,<%url=GetUrl()%>
好了,最後再在翻頁顯示的函數中加入參數url,<%call select_page(page_num,total,url)%>。
搞定,撤退!