首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

7.6  Wizard向导控件

Wizard向导控件主要的功能是提供导航和用户接口(UI)以收集多个步骤中的相关信息。而Wizard控件可以应用在下列工作中:

l   收集多个步骤中的相关信息。

l   用于收集用户输入的大型Web网页可分割成较小的逻辑步骤。

l   允许线性或非线性地导航各个步骤。

讲白话一点,Wizard控件就是把一个大流程拆解成许多小步骤,如网络的会员帐号申请。一般情况下,网络帐号的申请会有以下几个步骤:

n   会员帐号申请流程说明。

n   填写基本数据。

n   基本数据确认。

n   帐号注册成功。

n   结束帐号注册。

因此,若申请的步骤区分成很明确的Step 1、Step 2、Step 3等,可以让用户很清楚整个流程。而Wizard控件定位就是着眼于此,可以提供良好的流程导航与步骤指引,让用户很明确地知道有哪些步骤,并可建立程序化逻辑来处理或控制比较复杂的步骤,或者是更复杂的设置,所以说Wizard向导控件的出现也算是解决网页设计“重复造轮子”的问题,将常用的网页功能设计成为一个专门的控件,以提高Reuse与生产力,这算是个不错的点子。

Wizard控件可区分成四大区域(Area),说明如下:

(1)SideBar区域:是Wizard向导控件的步骤一、步骤二……项目的区域,点击SideBar可快速导航到不同步骤。

(2)WizardStep区域:是每个步骤实际呈现的控件,如TextBox、Label等等的ASP.NET控件。

(3)Header区域:是Wizard控件的标题。

(4)Navigation区域:是Wizard内置导航功能,它会根据StepType设置值的不同,而呈现不同的导航按钮(见图7-17)。

图7-17  Wizard向导控件

这四大区域不但在属性设置时起作用,程序设计时也必须选取区域,而后才能访问区域中的项目。

 范例7-9  以Wizard控件创建会员帐号申请

先来体验一下Wizard控件实际该如何运用,就以上面所提的网络会员帐号申请当作题材,设计一个会员帐号申请流程向导,请参考WizardControl.aspx程序,步骤说明如下:

  创建Wizard控件

请拖曳一个Wizard向导控件到Page页面,并将其ID改为“WizardAccount”(见图7-18)。

  自动格式化

Wizard控件也提供自动格式化功能,如果您不喜欢系统默认的几个样式,可以自行调整其颜色,Wizard控件左半部的背景色请在SideBarStyle属性的BackColor调整,而右半部的背景色直接调整Wizard控件的BackColor(见图7-19)。

图7-18  拖曳Wizard向导控件

图7-19  Wizard控件的自动格式化

  创建WizardSteps步骤项目

Wizard控件的Step1、Step2的步骤项是在WinzardSteps集合项中,故请点击WinzardSteps集合,添加5个WizardStep项,如图7-20所示:

l   请设置第1个步骤项ID为“Step1”,Title为“1.申请帐号流程说明”, StepType为“Start”。

l   请设置第2个步骤项ID为“Step2”,Title为“2.填写基本数据”, StepType为“Step”。

l   请设置第3个步骤项ID为“Step3”,Title为“3.基本数据确认”, StepType为“Step”,AllowReturn为“False”。

l   请设置第4个步骤项ID为“Step4”,Title为“4.帐号注册成功”, StepType为“Finish”。

l   请设置第5个步骤项ID为“Step5”,Title为“5.结束帐号注册”, StepType为“Complete”。

图7-20  创建WizardSteps步骤项目

(1)其中ID属性命名为Step1—Step5,而ID属性是可以随意命名的,默认系统并不会替您命名,而要命名的原因是要让程序来调用,相对的如果您不需要在Wizard控件中创建程序的话,则ID属性可以省略不命名。

(2)其中第三个步骤的AllowReturn属性设置为“False”的用意,是不允许步骤四再回到上一步骤。

  添加SideBar图片

图7-21是WizardSteps步骤建立完成后的画面,Wizard控件左半部有个专门的名称叫“SideBar”,在SideBar中可以添加一个图片或Logo。在此将加入一个小向导的图片,但在加入图片之前必须将SideBar转换为模板,才能提供给我们加入的自定义图片,故请点击Wizard控件的“SideBarTemplate”。

图7-21  将SideBar转换为模板

在完成SideBar转换为模板后,请点击“编辑模板”,进行模板编辑(见图7-22)。

图7-22  编辑SideBar模板

各位会在SideBarTemplate模板区域中看到一个小方块的控件,千万别把它删掉,它是SideBarList,也就是实际显示步骤项的东西。请在其上方添加一张图片,完成后如图7-23所示。

图7-23  结束Wizard模板编辑

  调整Wizard版面区域宽度

设置完格式化后还有一个地方看起来不太顺眼,就是左边的SideBar区域及右边的WizardStep区域显得不太协调。请将Wizard控件的Width属性设为450px,将SideBarStyle的Width宽度设为150px,这样版面就会比较协调。

  调整WizardStep水平及垂直对齐

Wizard控件的垂直对齐(VerticalAlign)默认为居中(Middle),水平对齐(HorizationAlign)为靠左对齐。若想要改变对齐的方式,请调整StepStyle属性的HorizontalAlign为Center,最后将Wizard控件的Height(高度)设置为250px。

  设置Wizard控件标题

请将Wizard控件的HeaderText属性设为“会员帐号申请向导”。

  在步骤1中添加流程说明文字

请点击Wizard控件的第一个步骤项,输入帐号申请流程说明文字(见图7-24)。

图7-24  设计Step1内容

  在步骤2添加输入相关控件

请在Wizard控件的步骤2添加让用户输入基本数据控件,并为控件ID取适当的名称,因为后续程序设计将访问控件的ID(见图7-25)。

图7-25  设计Step2内容

  在步骤3添加Literal控件

请在Wizard控件的步骤3添加Literal控件,并将其ID改为“txtUserInfo”,这个部分要显示用户所输入的基本信息,并让用户确认是否无误,无误才进行下一步骤(见图7-26)。

图7-26  设计Step3内容

  在步骤4添加Label控件

请在Wizard控件的步骤4添加Label控件,并将其ID改为“txtApply”,这个部分要显示用户注册帐号成功消息,并告知系统已发出身份认证E-mail到用户信箱(见图7-27)。

图7-27  设计Step4内容

  在步骤5添加Label控件

请在Wizard控件的步骤5添加Label控件,并将其ID改为“txtMsg”,这个部分是整个流程步骤结束的最终消息。然而,一旦点击Wizard最后一个步骤(其StepType为Complete)则会变成一大片空白区域,所有步骤项目都会消失,若想再调出步骤项得在智能标签中选择步骤项(见图7-28)。

图7-28  设计Step5内容

最后所有步骤设置完成后的HTML程序代码如下:

<asp:Wizard ID="WizardAccount" runat="server" BackColor="#FFFFC0" Border- Color="#B5C7DE"

    BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" Width="450px"

     ActiveStepIndex="3" HeaderText="会员帐号申请向导" Height="250px"

     OnFinishButtonClick="Wizard1_FinishButtonClick" OnNextButtonClick=

     "WizardAccount_NextButtonClick">

    <StepStyle Font-Size="0.8em" ForeColor="#333333" HorizontalAlign="Left"

     VerticalAlign="Top" />

    <SideBarStyle BackColor="#507CD1" Font-Size="0.9em" VerticalAlign="Top"

     Width="150px"     />

    <NavigationButtonStyle BackColor="White" BorderColor="#507CD1"

     BorderStyle="Solid"

        BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor=

                    "#284E98" />

    <SideBarTemplate>

        <img src="Images/向导.gif" /><br />

        <asp:DataList ID="SideBarList" runat="server">

            <SelectedItemStyle Font-Bold="True" />

            <ItemTemplate>

                <asp:LinkButton ID="SideBarButton" runat="server"

                 BackColor="#507CD1" Font-Names="Verdana" ForeColor="White">

                 </asp:LinkButton>

            </ItemTemplate>

        </asp:DataList>

    </SideBarTemplate>

    <WizardSteps>

        <asp:WizardStep ID="Step1" runat="server" Title="1.申请帐号流程说明"

         StepType="Start">

            欢迎光临本网站,以下是会员帐号申请流程说明:<br />

            1.网站会员帐号必须填写基本信息。<br />

            2.基本信息申请后会发出身份验证E-Mail到用户信箱。<br />

            3.您必须启用E-Mail身份验证,以完成帐号启动。</asp:WizardStep>

        <asp:WizardStep ID="Step2" runat="server" Title="2.填写基本信息"

         StepType="Step">

            帐号:<asp:TextBox ID="txtUserID" runat="server" MaxLength="12"

                 Width="150px"></asp:TextBox>

            <br />

            密码:<asp:TextBox ID="txtPassword" runat="server" MaxLength="12"

                 TextMode="Password"

                Width="150px"></asp:TextBox>

            <br />

            电子邮件:<asp:TextBox ID="txtMail" runat="server"></asp:TextBox>

            <br />

            省市:<asp:DropDownList ID="dwnCity" runat="server" Width="173px">

                <asp:ListItem Value="0">北京</asp:ListItem>

                <asp:ListItem Value="1">上海</asp:ListItem>

                <asp:ListItem Value="2">武汉</asp:ListItem>

                <asp:ListItem Value="3">广州</asp:ListItem>

                <asp:ListItem Value="4">成都</asp:ListItem>

                <asp:ListItem Value="5">兰州</asp:ListItem>

                <asp:ListItem Value="6">昆明</asp:ListItem>

                <asp:ListItem Value="7">拉萨</asp:ListItem>

                <asp:ListItem Value="8">福州</asp:ListItem>

                <asp:ListItem Value="9">西安</asp:ListItem>

                <asp:ListItem Value="10">长沙</asp:ListItem>

                <asp:ListItem Value="11">南昌</asp:ListItem>

                <asp:ListItem Value="12">太原</asp:ListItem>

                <asp:ListItem Value="13">合肥</asp:ListItem>

                <asp:ListItem Value="14">郑州</asp:ListItem>

            </asp:DropDownList>

            <br />

            住址:<asp:TextBox ID="txtAddress" runat="server" Width="238px">

                 </asp:TextBox>

            <br />

            邮政编码:<asp:TextBox ID="txtZipCode" runat="server" Width=

                    "99px"></asp:TextBox>

            <br />

            电话:<asp:TextBox ID="txtTel" runat="server"></asp:TextBox>

        </asp:WizardStep>

        <asp:WizardStep ID="Step3" runat="server" Title="3.基本信息确认"

         StepType="Step">

            <asp:Literal ID="txtUserInfo" runat="server"></asp:Literal>

        </asp:WizardStep>

        <asp:WizardStep ID="Step4" runat="server" Title="4.帐号注册成功"

         StepType="Finish">

            <asp:Label ID="txtApply" runat="server"></asp:Label>

        </asp:WizardStep>

        <asp:WizardStep ID="Step5" runat="server" Title="5.结束帐号注册"

         StepType="Complete">

            <asp:Label ID="txtMsg" runat="server"></asp:Label>

        </asp:WizardStep>

    </WizardSteps>

    <SideBarButtonStyle BackColor="#507CD1" Font-Names="Verdana" ForeColor=

     "White" />

    <HeaderStyle BackColor="#284E98" BorderColor="#EFF3FB" BorderStyle=

     "Solid" BorderWidth="2px" Font-Bold="True" Font-Size="0.9em"

     ForeColor="White" HorizontalAlign="Center" />

</asp:Wizard>

 设置Wizard控件起始项目程序代码

请在WizardControl.aspx程序加入Page_Load事件程序代码:

01  Protected Sub Page_Load(ByVal sender As Object, ByVal e As             

        System.EventArgs) Handles Me.Load

02      If (Not IsPostBack) Then

03          '设置开始步骤为第0个索引(Step1)

04          WizardAccount.ActiveStepIndex = 0

05      End If

06  End Sub

  添加Wizard控件按钮事件程序

请添加Wizard控件的NextButtonClick及FinishButtonClick两个按钮的Click事件程序代码,程序如下:

01  '下一步NextButton按钮的Click事件

02  Protected Sub WizardAccount_NextButtonClick(ByVal sender As Object, ByVal       

        e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles       

        WizardAccount.NextButtonClick

03      '在Step2,准备进入Step3

04      If WizardAccount.ActiveStepIndex =                                     

            WizardAccount.WizardSteps.IndexOf(Me.Step2) Then

05          '获取Wizard控件中的txtUserInfo Literal控件的对象引用

06          Dim txtUserInfo As Literal =     
                CType(WizardAccount.FindControl("txtUserInfo"), Literal)

07          txtUserInfo.Text = "您输入的基本资料如下:<BR>"

08          txtUserInfo.Text += "姓名:" & txtUserID.Text & "<br>"

09          txtUserInfo.Text += "电子邮件:" & txtMail.Text & "<br>"

10          txtUserInfo.Text += "省市:" & dwnCity.SelectedItem.Text & "<br>"

11          txtUserInfo.Text += "地址:" & txtAddress.Text & "<br>"

12          txtUserInfo.Text += "邮政编码:" & txtZipCode.Text & "<br>"

13          txtUserInfo.Text += "电话:" & txtTel.Text & "<br>"

14 

15          WizardAccount.StepPreviousButtonText = "回上一步骤重填"

16          WizardAccount.StepNextButtonText = "资料正确"

17      End If

18 

19      '在Step3,准备进入Step4

20      If WizardAccount.ActiveStepIndex =            
            WizardAccount.WizardSteps.IndexOf(Me.Step3) Then

21          '获取Wizard控件中的txtUserInfo Literal控件的对象引用

22          Dim txtApply As Label =                    
                CType(WizardAccount.FindControl("txtApply"), Label)

23          txtApply.Text = "系统并发出身份验证E-Mail到" & txtMail.Text &

                 "信箱"

24      End If

25  End Sub

26 

27  '按下Finish按钮Click事件

28  Protected Sub WizardAccount_FinishButtonClick(ByVal sender As Object,    ByVal

       e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles

       WizardAccount.FinishButtonClick

29      Dim txtMsg As Label = CType(WizardAccount.FindControl("txtMsg"),
            Label)

30      txtMsg.Text = "您已注册会员帐号成功,帐号必须通过E-Mail中的超链接才能启用"

31      WizardAccount.StepStyle.VerticalAlign = VerticalAlign.Middle

32      WizardAccount.StepStyle.HorizontalAlign = HorizontalAlign.Center

33  End Sub

完成后请执行程序,Wizard向导控件可以导引用户一步步地阅读与确认信息,而每个步骤又可以通过程序设计添加更为复杂的逻辑判断(见图7-29)。

图7-29  Wizard控件步骤执行画面

有了范例7-29的经验后,后续开始讲解Wizard控件更多深入的知识,大家会比较容易吸收了解。

l   StepType

每个WizardStep步骤都会有个StepType属性,它最主要的作用是决定每个步骤中的导航Button按钮会如何被显示,说明如表7-1所示。

表7-1  StepType类型

StepType类型

说  明

Start(开始步骤)

这是第一个开始步骤,只会呈现【下一步】按钮

Step(阶段步骤)

在Start及Finish之间的步骤全部归类为Step,Step会同时呈现【上一步】及【下一步】按钮

Finish(完成步骤)

这是最后的数据收集步骤,会呈现【完成】及【上一步】按钮,但若前一个步骤的AllowReturn设置为False,则不显示【上一步】按钮

Complete(结束步骤)

这是Wizard的最后一个步骤画面,完全不会呈现任何按钮,甚至连SideBar区域也会消失;若就英文字面很难区分Complete和Finish两者的差别,但就实质而言,Complete较贴近最后的结束

Auto(自动)

系统会依该步骤的顺序决定其为何种StepType类型

若您想在程序设计阶段指定StepType,通过WizardStepType列举来指定StepType类型,程序代码如下:

WizardAccount.WizardSteps(0).StepType = WizardStepType.Auto;

在解说上面StepType类型后,各位可以再回到上一个范例的Step 3,细细思考为何StepType属性要那样设置,应该就能很快理解了(见图7-30)。

图7-30  StepType类型

l   Wizard向导控件的样式(Style)

Wizard向导控件所支持的样式如表7-2所示。

表7-2  Wizard控件样式设置表

样式(Style)

说  明

CancelButtonStyle

设置【取消】按钮的样式

FinishCompleteButtonStyle

设置【完成】按钮的样式

FinishPreviousButtonStyle

设置Finish步骤中的【上一步】按钮的样式

HeaderStyle

设置表头样式

NavigationButtonStyle

设置导航区域中所有按钮的样式

NavigateStyle

设置导航区域样式

SideBarStyle

设置SideBar区域样式

StartNextButtonStyle

设置Start步骤中的【下一步】按钮的样式

StepNextButtonStyle

设置Step步骤中的【下一步】按钮的样式

StepPreviousButtonStyle

设置Step步骤中的【上一步】按钮的样式

StepStyle

设置WizardStep区域的样式

l   外观

Wizard控件除可调整样式外,还可调整其外观属性(见图7-31)。

图7-31  Wizard控件外观属性

l   模板编辑

如果您想更进一步定制Wizard控件默认的样式或外观等,可以通过其模板编辑功能来达成深入的定制,Wizard控件提供了5种模板编辑,说明如表7-3所示。

表7-3  Wizard控件模板类型

模板类型(Template)

说  明

HeaderTemplate

编辑表头模板

SideBarTemplate

编辑SideBar模板

StartNavigationTemplate

编辑开始步骤导航区域模板

StepNavigationTemplate

编辑阶段Step步骤导航区域模板

FinishNavigationTemplate

编辑完成步骤导航区域模板

 范例7-10  编辑Wizard控件模板

请将WizardControl.aspx程序复制成WizardTemplate.aspx,本范例将示范如何编辑Wizard控件模板。在此将自定义HeaderTemplate、StartNavigationTemplate,以及加入自定义的事件程序,请参考Wizard Template.aspx程序,步骤说明如下:

  进入模板编辑模式

首先在Wizard控件的智能标签中点击【编辑模板】进入编辑模式(见图7-32)。

图7-32  Wizard控件模板编辑

  自定义HeaderTemplate

进入模板编辑模式后,请切换到HeaderTemplate模板,在这里将显示定制的图片,请拖曳Header.jpg图片到HeaderTemplate模板中(见图7-33)。

图7-33  拖曳图片到HeaderTemplate模板

  自定义StartNavigationTemplate

接着要自定义开始步骤的导航按钮,请切换到StartNavigationTemplate模板,在模板加入一个ImageButton控件,指定其ImageUrl为“~/Images/ Next.gif”,并将其ID改为btnNext(见图7-34)。

图7-34  拖曳ImageButtonmg到StartNavigationTemplate模板

  加入自定义按钮事件程序

如果自定义导航按钮必须自行加入导航程序以切换到不同的步骤,请双击自定义的ImageButton按钮,加入Click事件程序代码:

01  '自定义开始步骤的下一步按钮

02  Protected Sub btnNext_Click(ByVal sender As Object, ByVal e As        

       System.Web.UI.ImageClickEventArgs)

03      If WizardAccount.ActiveStepIndex =                                     

            WizardAccount.WizardSteps.IndexOf(Me.Step1) Then

04          '切换到步骤2 Step2

05          WizardAccount.ActiveStepIndex =                                  

               WizardAccount.WizardSteps.IndexOf(Me.Step2)

06      End If

07  End Sub

  设置Navigation按钮对齐

由于Navigation按钮默认是靠右对齐的,如果想要改变成为居中对齐请调整NivagationStyle属性的HorizationalAlign为“Center”,或者用程序代码来设置:

WizardAccount.NavigationStyle.HorizontalAlign = HorizontalAlign.Center

完成后执行画面如图7-35所示。

其他如SideBarTemplate、StepNavigationTemplate、FinishNaviga tionTemplate的使用方式也大致相同,请自行参考模仿。

l   行为属性

Wizard支持的属性如表7-4所示。

图7-35  Wizard控件自定义模板

表7-4  Wizard控件为属性

行  为

说  明

ActiveStepIndex

通过索引值设置WizardSteps集合中哪个步骤项为Active

CancelDestinationPageUrl

设置当用户按一下【取消】按钮时会导向到的网页URL

DisplayCancelButton

是否显示【取消】按钮,默认不显示(False)

DisplaySideBar

是否显示SideBar区域,默认为True

EnableTheme

是否套用Theme

FinishDestinationPageUrl

设置当用户按一下【完成】按钮时会重新导向到的网页URL

SkinID

取得或设置要套用至控件的面板

ToolTip

设置当鼠标指针停留在 Web 服务器控件时显示的文字

l   事件

Wizard支持事件如表7-5所示。

表7-5  Wizard控件事件

事  件

说  明

ActiveStepChanged

当用户切换至控件中的新步骤时发生

CancelButtonClick

当用户点击【取消】按钮时发生

FinishButtonClick

当用户点击【完成】按钮时发生

NextButtonClick

当用户点击【下一步】按钮时发生

PreviousButtonClick

当用户点击【上一步】按钮时发生

SideBarButtonClick

当用户点击SideBar区域中的项目时发生

 范例7-11  Wizard控件事件的应用

前面的Wizard控件范例已使用过NextButtonClick、FinishButton Click两个事件,本范例要扩大事件的应用,再加入ActiveStepChanged、CancelButtonClick、PreviousButtonClick与SideBarButtonClick,通过这些事件及一些程序技巧可以捕捉到更多用户点击Wizard控件的信息。请参考WizardEvent.aspx程序,步骤说明如下:

  创建控件及Layout配置

本程序是由WizardControl.aspx程序扩充而来,并多加入了两个Label控件及一个Literal控件,目的是为了显示Wizard控件事件的信息,实际配置请参考程序。

  创建ActiveStepChanged事件程序

本事件程序是为了显示步骤变换信息,请在Wizard控件的ActiveStepChanged事件加入下面程序代码:

01  '步骤变更

02  Protected Sub WizardAccount_ActiveStepChanged(ByVal sender As Object,      

        ByVal e As System.EventArgs) Handles WizardAccount.ActiveStepChanged

03      txtActiveStepChanged.Text = "步骤项目已变动:" &                         

            WizardAccount.ActiveStep.Name

04  End Sub

程序说明:

WizardAccount.ActiveStep.Name是用来显示目前步骤名称的。

  创建SideBarButtonClick事件程序

本事件程序是为了显示SideBar区域被点击信息,请在Wizard控件的SideBarButtonClick事件加入下面的程序代码:

01  'SideBarButtonClick事件

02  Protected Sub WizardAccount_SideBarButtonClick(ByVal sender As Object,
        ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles

        WizardAccount.SideBarButtonClick

03      Dim txtStep As String = CType(CType(e.NextStepIndex, Int16) + 1,
            String)

04      Dim txtMsg As String = "您点击的SideBar步骤项目为Step" & txtStep &

          ",但系统不允许直接用SideBar局部切换步骤!"

05      Dim myMsg As New AlertMessage()

06      myMsg.showMsg(Me.Page, txtMsg)

07      e.Cancel = True

08  End Sub

程序说明:

如果您希望用户按照WizardStep流程一步步进行,可以通过e.Cancel=True的属性设置来取消用户点击步骤的切换,这样用户就无法任意切换了。

  创建CancelButtonClick事件程序

本事件程序的作用是当用户按下【取消】按钮后,将会导向另一个网页URL,首先将Wizard控件的“DisplayCancelButton”设置为True,接着在Wizard控件的SideBarButtonClick事件加入下面的程序代码:

01  '当用户按下取消按钮的事件

02  Protected Sub WizardAccount_CancelButtonClick(ByVal sender As Object,      

       ByVal e As System.EventArgs) Handles WizardAccount.CancelButtonClick

03      WizardAccount.CancelDestinationPageUrl = "~/WizardCancelUrl.aspx"

04  End Sub

程序说明:

当用户无论在哪一个步骤中按下【取消】按钮后,页面会立即被导向指定的网页Url。

此外,还有几个小地方加入了一些设置,在此不一一述说,完整的程序代码列示如下:

01  Partial Class WizardEvent

02      Inherits System.Web.UI.Page

03 

04      Protected Sub Page_Load(ByVal sender As Object, ByVal e As 

           System.EventArgs) Handles Me.Load

05          If (Not IsPostBack) Then

06              '设置开始步骤为第0个索引(Step1)

07              WizardAccount.ActiveStepIndex = 0

08          End If

09      End Sub

10 

11      '上一步PreviousButtonClick按钮的Click事件

12      Protected Sub WizardAccount_PreviousButtonClick(ByVal sender As
           Object,ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs)
           Handles WizardAccount.PreviousButtonClick

13          txtSideBar.Text = ""

14      End Sub

15 

16      '下一步NextButton按钮的Click事件

17      Protected Sub WizardAccount_NextButtonClick(ByVal sender As Object,
            ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs)
            Handles WizardAccount.NextButtonClick

18          '在Step2,准备进入Step3

19          If WizardAccount.ActiveStepIndex =
                WizardAccount.WizardSteps.IndexOf(Me.Step2) Then

20              '获取Wizard控件中的txtUserInfo Literal控件的对象参照

21              Dim txtUserInfo As Literal =
                    CType(WizardAccount.FindControl("txtUserInfo"), Literal)

22              txtUserInfo.Text = "您输入的基本信息如下:<BR>"

23              txtUserInfo.Text += "姓名:" & txtUserID.Text & "<br>"

24              txtUserInfo.Text += "电子邮件:" & txtMail.Text & "<br>"

25              txtUserInfo.Text += "省市:" & dwnCity.SelectedItem.Text &
                    "<br>"

26              txtUserInfo.Text += "地址:" & txtAddress.Text & "<br>"

27              txtUserInfo.Text += "邮政编码:" & txtZipCode.Text & "<br>"

28              txtUserInfo.Text += "电话:" & txtTel.Text & "<br>"

29 

30              WizardAccount.StepPreviousButtonText = "回上一步骤重填"

31              WizardAccount.StepNextButtonText = "信息正确"

32          End If

33 

34          '在Step3,准备进入Step4

35          If WizardAccount.ActiveStepIndex =
                WizardAccount.WizardSteps.IndexOf(Me.Step3) Then

36              '获取Wizard控件中的txtUserInfo Literal控件的对象参照

37              Dim txtApply As Label =
                    CType(WizardAccount.FindControl("txtApply"), Label)

38              txtApply.Text = "系统并发出身份验证E-Mail到" & txtMail.Text &
                    "信箱"

39          End If

40 

41          txtSideBar.Text = ""

42      End Sub

43 

44      '按下Finish按钮Click事件

45      Protected Sub WizardAccount_FinishButtonClick(ByVal sender As Object,
           ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles
           WizardAccount.FinishButtonClick

46          Dim txtMsg As Label = CType(WizardAccount.FindControl("txtMsg"),
                Label)

47          txtMsg.Text = "您已注册会员帐号成功,帐号必须通过E-Mail中的超链接才能启用"

48          WizardAccount.StepStyle.VerticalAlign = VerticalAlign.Middle

49          WizardAccount.StepStyle.HorizontalAlign =
                HorizontalAlign.Center

50      End Sub

51 

52      '步骤变更更改

53      Protected Sub WizardAccount_ActiveStepChanged(ByVal sender As Object,
            ByVal e As System.EventArgs) Handles WizardAccount.ActiveStepChanged

54          txtActiveStepChanged.Text = "步骤项目已变动:" &
                WizardAccount.ActiveStep.Name

55      End Sub

56 

57      'SideBarButtonClick事件

58      Protected Sub WizardAccount_SideBarButtonClick(ByVal sender As
            Object, ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs)
            Handles WizardAccount.SideBarButtonClick

59          Dim txtStep As String = CType(CType(e.NextStepIndex, Int16) + 1,
                String)

60          Dim txtMsg As String = "您点击的SideBar步骤项目为Step" & txtStep &
                ",但系统不允许直接用SideBar局部切换步骤!"

61          Dim myMsg As New AlertMessage()

62          myMsg.showMsg(Me.Page, txtMsg)

63          e.Cancel = True

64      End Sub

65 

66      '当用户按下取消按钮的事件

67      Protected Sub WizardAccount_CancelButtonClick(ByVal sender As Object,
            ByVal e As System.EventArgs) Handles WizardAccount.CancelButtonClick

68          WizardAccount.CancelDestinationPageUrl =
                "~/WizardCancelUrl.aspx"

69      End Sub

70  End Class

完成后请执行程序,您可以测试几个项目:(1)按下【下一步】按钮,画面会显示目前步骤名称;(2)点击SideBar项目,系统会告诉您点击了哪个项目,但禁止用户任意变换步骤;(3)按下【取消】按钮,画面会导向WizardCancelUrl.aspx页面(见图7-36)。

图7-36  Wizard控件事件

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论