无限动态参数在ASP分页时自动记录所有参数名的解决方法
2007-05-23 17:01
585 查看
前述:
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如何得到呢?经过网上查询和研究,用如下函数实现:
获取当前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)%>。
搞定,撤退!
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如何得到呢?经过网上查询和研究,用如下函数实现:
获取当前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)%>。
搞定,撤退!
相关文章推荐
- 完美解决js传递参数中加号和&号自动改变的方法
- php 分页显示数据 post参数传递问题解决方法
- ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法
- ASP.NET中URL传参数出现乱码解决方法
- Eclipse ADT 中自动提示的方法参数都是arg0, arg1的解决方法
- asp.net mvc框架中,ajax传递json对象,并自动转换成参数对象的方法
- ExtJs 3 ExtJs4 分页(pagingtoolbar)带参数(条件)查询解决方法
- asp.net post方法中参数取不出来的解决方法
- Eclipse中自动提示的参数变成arg0,arg1...的解决方法
- ASP同一站点下gb2312和utf-8页面传递参数乱码的终极解决方法
- Access 出现 所有记录中均未找到搜索关键字 的解决方法!
- ASP.NET MVC 3 loginUrl自动变成Account/Login,并且发生404错误的解决方法
- ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法
- ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法
- error C2470 错误记录与解决方法。“看起来像函数定义,但没有参数列表”
- js传递中文参数的url到asp(jscript)解释得到的中文参数为乱码的解决方法
- 在Asp.net 2.0中用QueryString传递中文参数的解决方法!
- VB.Net水晶报表:记录选择公式无效,显示出所有记录的解决方法
- 解决:Windows自动更新所有选框都是灰色的方法
- nginx 自动忽略request中header name包含下划线参数的解决方法