無限動態參數在ASP分頁時自動記錄所有參數名的解決方案

來源:互聯網
上載者:User
前述:
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)%>。

搞定,撤退!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.