用ASP实现Web表单的数据保持(二)
2008-02-23 05:31:36来源:互联网 阅读 ()
更有一个等待解决的问题是我们不知道每个特定的页面有多少需要存储的值。我们真的想要有一种一般的方法能够反复地使用,而不用总是为获取正确的数组维数而担心。最容易的方法就是使用动态数组。在VBScript中,我们能够用ReDim 关键字创建一个动态数组,以后再用相同的关键字调整他的大小。假如我们在调整大小时包含了Preserve 关键字,我们就能够保持存储的值。有一个限制就是只能在最后一维调整多维数组的大小。
我们例子中的页面(名为aspstate.asp )就使用了这个技术。首先声明一个能容纳255个控制名字和值的数组。注意第二列(最后一列)指数是和我们所发现的控制数不同的一个。我们还将计数器变量intIndex(当我们发现控制域时计算其个数)配置为0。
'create a dynamic two-dimensional array
ReDim arrVals(1, 255)
intIndex = 0
现在我们在Request.Form集合中循环以填充数组。
'loop through the Request.Form collection
For Each varItem in Request.Form
If Request.Form(varItem).count > 1 Then
'this is itself a collection so iterate each value
For intLoop = 1 to Request.Form(varItem).count
'store control name and value in array
arrVals(0, intIndex) = varItem & "(" & intLoop & ")"
arrVals(1, intIndex) = Request.Form(varItem)(intLoop)
intIndex = intIndex 1
Next
Else
'this is a single control item so just store in array
arrVals(0, intIndex) = varItem
arrVals(1, intIndex) = Request.Form(varItem)
intIndex = intIndex 1
End If
Next
现在我们的数组中已有了全部控制域名和他们的值,intIndex 包含着Request.Form 集合中所表现的控制域个数的记数值。我们能够调整数列的大小,这样一来他就只包含元素的记数值。由于数列从第0列开始,我们就用intIndex - 1 作为新的列数。
'resize the array to the correct size
ReDim Preserve arrVals(1, intIndex - 1)
现在该考虑一下我们如何将数组放入Session 对象中。我们从Request.ServerVariables 集合中收集引用页面(装载这个页面的表单页面)的名字,去掉路径。然后在Session 对象中把他用做变量名:
'get the name for the session variable using the script
'name of the form page which was the referrer
strReferrer = Request.ServerVariables("HTTP_REFERER")
strReferrer = Mid(strReferrer, InstrRev(strReferrer, "/") 1)
'save the array in the Session
Session(strReferrer) = arrVals
结束时,我们只要在页面中显示存储在数组中的值来证实我们所做的工作:
Response.Write "< P >---- values received and stored ----< BR >"
'display the array contents
For intIndex = 0 To UBound(arrVals, 2)
Response.Write arrVals(0, intIndex) & " = " _
& arrVals(1, intIndex) & "< BR >"
Next
这里是用我们以前使用过的相同的值所得到的结果:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 用ASP实现Web表单的数据保持(三)
下一篇: 用ASP实现Web表单的数据保持(一)
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash