admin管理员组文章数量:1568354
2024年1月16日发(作者:)
Wizard 控件
/zh-cn/library/wdb4eb30(VS.80).aspx
生成一系列窗体来收集用户数据是开发网站时的常见任务。通过提供一种允许方便地生成步骤、添加新步骤或对步骤重新排序的机制, Wizard 控件简化了许多与生成窗体和收集用户输入关联的任务。在本演练中,将使用 ard 控件将数据收集简化为一系列独立的步骤,而无需编写代码或在窗体步骤之间保存用户数据。您将创建一个简单的向导,用于收集用户名和电子邮件地址,然后在完成步骤中将收集的内容返回给用户。本演练中阐释的任务包括:
向页中添加一个 Wizard 控件。
向向导步骤添加控件和文本。
在步骤之间访问向导的数据。
先决条件
若要完成本演练,您需要:
Microsoft Visual Web Developer (Visual Studio)。
.NET Framework。
创建网站
如果已经在 Visual Web Developer 中创建了一个网站(例如,按照 演练:在 Visual
Web Developer 中创建基本网页 中的步骤),则可以使用该网站并转到本演练后面部分的“添加 Wizard 控件”。否则,按照下面的步骤创建一个新的网站和网页。
创建文件系统网站
打开 Visual Web Developer。
在“文件”菜单上单击“新建网站”。
出现“新建网站”对话框。
在“Visual Studio 已安装的模板”之下单击“ 网站”。
在“位置”框中输入要保存网站页面的文件夹的名称。
例如,键入文件夹名“C:WebSites”。
在“语言”列表中,单击您想使用的编程语言。
单击“确定”。
Visual Web Developer 创建该文件夹和一个名为 的新页。
添加 Wizard 控件
添加 Wizard 控件
切换到 的“设计”视图。
从“工具箱”的“标准”组中,将 Wizard 控件拖到该页上。
该控件即显示在页上,并具有两个默认步骤。单击这两个步骤可对该步骤期间显示的文本和控件进行编辑。
编辑 Wizard 步骤
将 Wizard 控件拖放到页上时,默认情况下,该控件显示两个预定义步骤。在本演练中,您将编辑这两个步骤,并添加一个完成步骤,用于显示前两个步骤的结果:用户名和电子邮件地址。
编辑第一个向导步骤
拖动“Wizard”控件边沿的控制柄之一,将该控件放大到大约其默认大小的两倍。
单击“Wizard”控件中带下划线的文本“步骤 1”。
单击“Wizard”控件的编辑区域。
现在即可编辑该步骤的显示区域。
键入“名称:”。
将 TextBox 控件拖到向导活动区域中刚键入的文本旁边。
现在即可编辑第二个步骤以收集用户的电子邮件地址。
编辑第二个向导步骤
单击“Wizard”控件中的“步骤 2”。
单击“Wizard”控件的编辑区域。
键入“电子邮件:”。
将 TextBox 控件拖到向导活动区域中电子邮件标签旁边。
保存该文件。
添加完成步骤
现在将创建一个完成步骤作为向导的结束点。Complete 步骤没有导航选项。
添加完成步骤
右击“Wizard”控件。
选择“显示智能标记”。
在“向导任务”对话框中,选择“添加/移除向导步骤”。
出现“WizardStep 集合编辑器”。
从“添加”按钮上的“添加”下拉列表中,选择“向导步骤”。
现在“属性”区域显示该新步骤。
将“标题”属性设置为“已完成”。
将“StepType”属性设置为“完成”。
单击“确定”。
现在可以编辑新的完成步骤。为了实现本演练的目的,请配置该完成步骤以显示用户在前面步骤中输入的数据。
编辑完成步骤
右击“Wizard”控件,然后选择“显示智能标记”。
在“向导任务”对话框中,使用“步骤”下拉列表选择“已完成”步骤。
注意
该下拉列表中的名称将是该步骤在创建时使用的名称,在本例中是“已完成”。
将 Label 控件拖到向导上,保留默认名称 Label1。
将另一个 Label 控件拖到向导上,保留默认名称 Label2。
保存该文件。
完成步骤将显示用户输入的数据。使用页的 Load 事件将前两个步骤的值指定给添加到完成步骤的两个标签。
显示用户的数据
返回到 ,并在“设计”视图中双击设计图面。
该页现在包含为您存根的 Page_Load 方法。
添加下面突出显示的代码。
VB
C#
C++
F#
JScript
复制
我们尚未提供此语言的代码示例。
VB
C#
C++
F#
JScript
复制
void Page_Load(Object sender, rgs e)
{
= ;
= ;
}
保存该文件。
测试 Wizard 控件
现在可以测试 Wizard 控件。
测试 Wizard 控件
在“设计”视图中查看 。
显示该控件上的“向导任务”菜单,并从“步骤”下拉列表中选择“步骤 1”。
单击该“Wizard”控件,然后按 Ctrl+F5。
在“步骤 1”中用于名称的“TextBox”控件中键入名称。
单击“下一步”。
在“步骤 2”中用于电子邮件的“TextBox”控件中键入电子邮件地址。
单击“完成”。
即会显示您的数据。
后续步骤
Wizard 控件简化了用于收集用户数据的窗体的创建。除了这里介绍的内容之外,您可能还有与用户数据收集和窗体使用有关的其他问题。例如,您可能希望:
了解有关使用窗体对用户进行身份验证的更多信息。有关详细信息,请参见 如何:实现简单的 Forms 身份验证
使用主题增强向导外观。有关详细信息,请参见 主题和外观概述
获取 Wizard 控件的概述。有关详细信息,请参见 Wizard Web 服务器控件概述
中 wizard的使用
-----------------scenario summary-------
1.有确定的步骤,进行一系列简单操作;
2.向导功能;
……(等等)
在以上场景中,可以使用wizard来操作。同时wizard在这些方面比multiview要灵活,当然可以使用multiview来模拟wizard的功能。wizard的导航功能具有:一步一步的导航,也可以从一步跳转到任意一步,即wizard具备了线性和非线性的导航功能
---------------Problem scenario summary-----------
在初次使用wizard,可能会遇到:
1.属性和事件不清晰;
2.如何禁用掉sidebar的点击功能(OnClientClick="return false")
3.如何灵活禁用上一步和下一步(=true;)
4.如何控制wizard的大小或者修改sidebar以及wizard的样式
--------------------solution summary------------
1.==》wizard介绍:
Wizard控件负责导航,包括线性导航(从一步转到下一步或上一步)和非线性导航(从一步转到任意其他步)。该控件能够自动创建合适的按钮,例如Next,Previous以及Finish。第一步没有Previous按钮,最后一步没有Next按钮。通过设置可以使得一些步骤只能被导航一次。另外,默认情况下,Wizard控件显示一个包含导航链接的工具栏,这让用户可以从当前步骤转到其他步骤。Wizard控件的所有外观特征几乎都可以通过样式和模板来自定义,包括各种各样的按钮和链接、标题和页脚、工具条和WizardStep。
WizardStepType的枚举值
成员
Auto
Complete
Finish
Start
Step
说明
声明步骤时的顺序决定了导航的界面,这是默认值
要显示的最后步骤,它不呈现导航按钮
最后的数据采集步骤,它只呈现被动完成和上一步两个按钮
第一步,只呈现一个下一步按钮
Start、Finish和Complete之外的任何步骤,它呈现上一步和下一步按钮
WizardStep类还包含一个特别有意思的AllowReturn属性。该属性可以强制线性导航。设置一个步骤的AllowReturn属性为false后,则只能导航到该步骤一次。如果DisplaySideBar属性为true(默认值),那么将显示侧栏。虽然AllowReturn属性设置为false的步骤仍然显示在导航链接中,但单击链接不会有任何反应。
提示:AllowReturn属性只禁止用户交互。即使该步骤的AllowRe- turn属性已经设置为false,程序代码也可以强制返回到一个步骤。
Wizard控件的6个事件,其中一个是ActiveStepChanged事件,在当前步骤改变时触发该事件。另外5个事件都由单击按钮触发。如表5-6所示,除了CancelButtonClick,其他的按钮单击事件都有一个WizardNavigationEventArgs类型的参数,它公开了3个属性:
Cancel
Boolean类型值。如果取消链接到下一步,则该值为true。默认值为false。
CurrentStepIndex
以0开始的WizardSteps集合中当前步骤的索引值。
NextStepIndex
以0开始的将要显示的步骤的索引值。例如,如果单击了“Previous”按钮,则NextStepIndex的值比CurrentStepIndex值小1。
表5-6 Wizard事件
事 件
ActiveStepChanged
CancelButtonClick
FinishButtonClick
NextButtonClick
PreviousButtonClick
SideBarButtonClick
事件参数
EventArgs
EventArgs
WizardNavigationEventArgs
WizardNavigationEventArgs
WizardNavigationEventArgs
WizardNavigationEventArgs
说 明
显示新步骤时触发
单击取消按钮时触发
单击完成按钮时触发
单击下一步按钮时触发
单击上一步时触发
当单击侧栏区域中的按钮时触发
Wizard的方法方法名返回类型
称
GetHistory
GetStepType
MoveTo
说 明
返回一个按被访问的顺序排列的WizardStepBase
对象的集合,索引0 为最近访问的步骤
步骤的类型,如表5-5所示
移动到参数中指定的WizardStep对象
ICollection
WizardStepType
void
==>禁用掉sidebar的点击功能:更改sidebarTemplate的linkbutton(如果你使用linkbutton)的点击事件:
OnClientClick="return false";
代码如下:
ID="Wizard1" runat="server" ActiveStepIndex="0" BackColor="#F7F6F3" Font-Names="Verdana" CellPadding="10" Height="100%" Width="700px"> BorderWidth="0px" ForeColor="#5D7B9D" /> HorizontalAlign="Left" /> runat="server" Title="Step 1" StepType="Start"> This is Step One /> ID="SideBarList" runat="server" OnItemDataBound="SideBarList_ItemDataBound"> ID="SideBarButton" OnClientClick="return false" ForeColor="White" runat="server"> Font-Bold="true"/>
3。===》如何灵活禁用上一步和下一步
protected void Wizard1_PreviousButtonClick(object
WizardNavigationEventArgs e)
{
if (tStepIndex == 2)
{
= true;//禁用上一步
}
}
-----------------------demo
利用上述的相关知识点,编写了一个:找回密码的向导的小demo,欢迎指点:
""
/s/3oPFM
-------------------------------程序页面代码: