快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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

如何使用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 = ""
%>
返回类别: 教程
上一教程: 显示目前站点在线人数
下一教程: 一个把数字转英文的实用程序

您可以阅读与"如何使用ASP制作类似安装向导的页面"相关的教程:
· 如何使用ASP产生象安装向导的主页
· 如何使用ASP制作模似动态生长的表单?
· 如何使用ASP制作模似动态生长的表单
· 如何使用 MICROSOFT ACCESS 和 ACTIVE SERVER PAGES 加密你的页面
· 如何使用MICROSOFT ACCESS和ACTIVE SERVER PAGES加密你的页面
    微笑服务 优质保证 索取样品