加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

怎么借助ASP制作安装向导页面

发布时间:2023-07-25 13:55:49 所属栏目:Asp教程 来源:
导读:我们从网上下载的一些程序如论坛,在安装的时候有类似软件一样的安装向导,这样方便了用户的安装,这个功能要如何实现呢?

我们面临的主要问题在于:

1。界面和一个Windows Wizard完全一样,有Next和Back按钮
我们从网上下载的一些程序如论坛,在安装的时候有类似软件一样的安装向导,这样方便了用户的安装,这个功能要如何实现呢?
 
我们面临的主要问题在于:
 
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 = ""
 
%>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章