精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程
返回建站学首页
导航:
建站首页 | 网站设计 | 网站开发 | 网站运营 | 网页软件 | 建站指南 | 搜索优化 | 图像处理 | 视频教程 | 书籍教程 | 建站专题
当前位置:首页>网站开发>ASP教程>正文

如何使用ASP制作类似安装向导的页面?


来源:我要学习网 时间:06-11-13 点击: 点击这里收藏本文
如何使用ASP制作类似安装向导的页面? 
面临的主要问题何在: 
1。界面和一个Windows Wizard完全一样,有Next和Back按钮 
2。用户可以使用Back按钮回到以前的任何一步,并且能够改变以前任何一步中已经选择的内容 
3。form必须记住所有填入的内容 
4。不能够使用数据库 
5。不能够使用Sessions,防止如果Sessiosn失效后用户的所有输入丢失,不幸的是,也不能够使用cookie 
因为很多拥护经常关掉浏览器的Cookie选项。 
6。可移植性要好,因为它要适应安装步数不同时的情况 
解决方案: 
1。使用hidden变量传递参数 
2。使用POST方式,不使用GET方式,因为这种方式受长度限制 
3。每一个页面都必须有一个用来读取提交值的函数 
4。每一个页面(除了第一个页面外)都必须要有一个hidden form 来向前一页传递参数 

如果在你的页面中使用了Checkboxes或则使用了radio buttons,请使用以下代码读数值: 
<% For Each Item in Request.Form 
If Request.Form(Item).Count Then 
For intLoop = 1 to Request.Form(Item).Count 
Response.Write "Item = " & Item & " Index = " & intLoop & "<BR>" 
Next 
Else 
Response.Write "Item = " & Item & "<BR>" 
End If 
Next 
%> 

在设计是,对checkboxes和radio采用了特殊的处理方法: 
1。只有最新的数值才被考虑使用这两种方式保存 
2。用户可以使用Back来改变前面输入的数值,但必须要使用Next提交后才能够生效 
3。页面必须要能够应付一个页面有多个controls的情况 

具体实现方法: 
第N个页面应该有: 
1。第一个form:它的ACTION= page(N+1).asp和它底部必须有Next按钮 
2。第二个form:它的ACTION= page(N-1).asp和Back按钮 
3。变量命名规则:举例:N_<page no> 后缀是控件类型.<INPUT TYPE = RADIO NAME = RADIO_P2> 
是表示第二页的一个name是radio的东西 
4。一个用来读取提交的函数 
页面根据一个循环来判断当前的控件是属于哪一页的。 
代码如下: 
<%@LANGUAGE="VBSCRIPT %> 
<HTML> 
<HEAD> 
</HEAD> 
<BODY> 
<!-- NEXT按钮模块编程开始 --> 
<FORM ACTION="page03.asp" METHOD="POST" > 
<!-------------------------------------------------------------> 
<!--读入函数开始 --> 
<!-------------------------------------------------------------> 
<% 
pageno = "_P2" 
For Each Item in Request.Form 
WhichPage = InStr(1,CStr(Item), pageno,1) 
If ((Request.Form(Item).Count) AND (WhichPage = 0)) Then 
strCount = Request.Form(Item).Count 
strItem = Request.Form(Item)(strCount) 
Response.Write "<INPUT TYPE=""HIDDEN"" NAME=""" & Item & """ VALUE=""" & strItem & """>" &VbCrLf 
ElseIf (NOT(Request.Form(Item).Count) AND (WhichPage = 0)) Then 
Response.Write "<INPUT TYPE=""HIDDEN"" NAME=""" & Item & """ VALUE=""" & strItem & """>" &VbCrLf 
End If 
Next 
%> 
<!------------------------------------------------------------> 
<1-- 读入函数结束 --> 
<!------------------------------------------------------------> 

<!-- #include file = "Check_UnCheck.txt" --> 
<% 
Function Check_UnCheck(ctrlName, ctrlValue) 
Dim ctrlName_in 
Dim ctrlValue_in 
Dim ctrlValue_actual 
Dim outStr 

ctrlValue_in ="" 
ctrlName_in = "" 
ctrlValue_actual = "" 
outStr = "" 
ctrlName_in = ctrlName_in & ctrlName 
ctrlValue_in = ctrlValue_in & ctrlValue 

If Request.Form(ctrlName_in).Count Then 
strCount = Request.Form(ctrlName_in).Count 
ctrlValue_actual = Request.Form(ctrlName_in)(strCount) 
If ctrlValue_actual = ctrlValue_in Then 
outStr = "CHECKED" 
End If 
Else 
ctrlValue_actual = Request.Form(ctrlName_in) 
If ctrlValue_actual = ctrlValue_in Then 
outStr = "CHECKED" 
End If 
End If 
Check_UnCheck = outStr 
End Function 
%> 

<!-- Back按钮模块开始 --> 

<% 
strItem1 = "" 
strItem1a = "" 
For Each Item1 in Request.Form 
If Request.Form(Item1).Count Then 
strCount1 = Request.Form(Item1).Count 
strItem1 = Request.Form(Item1)(strCount1) 
Response.Write "<INPUT TYPE=""HIDDEN"" NAME=""" & Item1 & """ VALUE=""" & strItem1 & """>" &VbCrLf 
strCount1 = "" 
strItem1 = "" 
Else 
strItem1a = Request.Form(Item1) 
Response.Write "<INPUT TYPE=""HIDDEN"" NAME=""" & Item1& """ VALUE=""" & strItem1a & """>" &VbCrLf 
End If 
Next 

strItem1 = "" 
strItem1a = "" 
%>

  把此文章收藏到:          
广而告之
文章搜索
  • Google JZxue.Com

关于我们 | 联系我们 | 友情链接 | 网站地图
Copyright © 2005 - 2006 建站学 All rights reserved.