【51CTO.com独家特稿】我相信,每一位读者对于桌面应用中的向导概念肯定不会陌生;但是,在Web开发中,通过HTTP连接实现一个向导并非易事。还好,ASP.NET 2.0中新引入的向导使得这一问题相对容易。在本文中,让我们来详细剖析这个向导控件的使用思路;同时,本文还提供了一个简单的例子供您参考。
一、什么是向导?
无论你进行Web开发还是从事Windows开发,你经常需要使用表单来收集用户输入信息。当需要收集的输入数据能够被分解成特定的类型时,针对每一种类型使用一个相应的表单常常是典型的实现。典型情况下,整个过程可以被分解成各种步骤,每一步负责校验期望数据的一个特定子集。这种多步骤过程通常称作一个“向导”。
一个向导让你实现线性处理(从步骤1到步骤N),但是也允许用户跳过不必要的步骤或返回到前面的步骤以作出某些改变(非线性设计还能够通过编程方式控制,稍后我们会讨论)。在Web上实现一个向导是许多开发者都需要解决的一项任务;但是,在以前管理每一步中的导航和数据集合一直都很复杂。幸好,ASP.NET 2.0提供一个新的向导控件,从而大大简化了这一过程。
为了把一系列表单链接到一个象向导一样的用户接口中,你必须管理表单之间的导航,处理数据存储和管理每一步中的状态。跨页面寄送和显示/隐藏面板是能够应用于ASP和ASP.NET中从而实现构建向导的两项主要的技术。这种跨页面寄送技术包括把第一个页面输入的内容寄送到另一个不同的页面以及用隐藏域来存储以前的内容。借助于显示/隐藏面板技术,我们可以把各种视图加入到单个页面中并且基于当前步骤对其加以显示或隐藏。
第二种技术特别适合于ASP.NET 1.x应用程序。你将在后面看到,显示/隐藏还是ASP.NET 2.0实现向导控件的关键思想。
二、ASP.NET 2.0中的向导控件
ASP.NET 2.0向导(Wizard)控件简化了我们前面要实现的任务。这个控件提供了一种机制允许你轻松地把希望实现的向导构建为一个步骤集合—添加新的步骤或重新排序步骤。你不必为各步骤之间的导航或用户数据存储编写任何基础代码。
为使用向导控件,你只需遵循下面这些简单的步骤:
1. 把一个向导控件拖动到你的Web表单;
2. 把一些控件,图像和文本添加到每一个向导步骤中;
3. 存取该向导在各步骤之间的数据。
向导控件是一个复合控件,它继承自基类CompositeControl并且被集成到Visual Studio 2005的设计器中,它能够进行自身数据回寄以保持视图状态信息。这一事实使得我们能够实现非线性导航并且保证表单元素自动地跨多个向导过程视图重新填充。
一个向导中的每一步都是一种面板(一个文本,标记,图像和定制用户控件的容器)。图1展示了ASP.NET 2.0向导控件的架构。
图1.Wizard控件结构图
三、使用向导控件
一个向导控件由四部分组成:头部,当前步骤视图,导航样和侧栏。所有这些组成部分(甚至更多),都可以通过使用一些属性加以修饰。其中,头部、侧栏和导航栏的内容能够通过模板进一步定制。
下面列表1中的代码概括了一个ASP.NET 2.0应用程序中的一个向导控件的典型实现代码。
列表1.典型的向导控件框架:
| 共4页: 1 [2] [3] [4] 下一页 | ||
|
|
|||
| · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 · 充电计划之热门IT认证.. · 51CTO技术自测 挑战自.. · CISSP认证成长之路 · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 |
· 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 · RIP路由协议专栏 · MPLS路由协议专栏 · OSPF路由协议专栏 · 思科路由器产品 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·拯救系统管理员 ·美国选民:我为什么选布什 |
·VMware公司中文命名挑战赛 ·我们真缺乏创新吗? |
| ·J0ker的CISSP之路:复习-.. ·J0ker的CISSP之路:复习-I.. |
·9月第3周安全回顾 内网安.. ·教你几招识别和防御Web网.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· 费力不讨好 数据中心主.. · AMD Phenom三核处理器解.. · 51CTO主编推荐经典专题 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |