前述:
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参数的函数
2
Private Function GetUrl()
3
Dim ScriptAddress,M_ItemUrl,M_item
4
ScriptAddress = CStr(Request.ServerVariables("SCRIPT_NAME")) '取得当前地址
5
M_ItemUrl = ""
6
If (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
14
Else
15
ScriptAddress = ScriptAddress & "?"
16
end if
17
GetUrl = ScriptAddress & M_ItemUrl
18
End Function
将以上代码保存为任意的asp文件,然后在需要实现翻页功能的文件里包含一下该文件,并在翻页文件里将得到的地址赋给一个变量,这里就叫url吧,<%url=GetUrl()%>
好了,最后再在翻页显示的函数中加入参数url,<%call select_page(page_num,total,url)%>。
搞定,撤退!
posted @ 2007-05-23 17:01
jay-c 阅读(335)
评论(0) 编辑 收藏 网摘 所属分类:
ASP