admin管理员组

文章数量:1530873

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

-------------------------------程序页面代码:

OnCancelButtonClick="Wizard1_CancelButtonClick"

OnFinishButtonClick="Wizard1_FinishButtonClick"

OnPreviousButtonClick="Wizard1_PreviousButtonClick"

BorderColor="#FFDFAD"

BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" Height="73px" Width="353px"

OnNextButtonClick="Wizard1_NextButtonClick">

BorderWidth="2px"

Font-Bold="True" Font-Size="0.9em" ForeColor="#333333" HorizontalAlign="Center" />

欢迎使用密码找回模块

BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#990000" />

ForeColor="Orange"

Width="80px">

执行的第一步:输入您的邮箱和用户名:

BackColor="#FFCC66" BorderColor="#FFFBD6" BorderStyle="Solid"

BackColor="#FFFBD6"

执行的第二步:输入验证码:

执行的第三步: 修改密码:

谢谢使用^_^

欢迎下次使用^_^

本文标签: 步骤控件向导用户