5.15 向导控件(Wizard)

  在WinForm开发中,安装程序会一步一步的提示用户安装,或者在应用程序配置中,同样也有向导提示用户,让应用程序安装和配置变得更加的简单。与之相同的是,在ASP.NET中,也提供了一个向导控件,便于在搜集用户信息、或提示用户填写相关的表单时使用。

5.15.1 向导控件的样式
  当创建了一个向导控件时,系统会自动生成向导控件的HTML代码,示例代码如下所示。
+展开
-HTML
    <asp:Wizard ID="Wizard1" runat="server">
        <WizardSteps>
            <asp:WizardStep runat="server" title="Step 1">
            </asp:WizardStep>
            <asp:WizardStep runat="server" title="Step 2">
            </asp:WizardStep>
        </WizardSteps>
    </asp:Wizard>

  上述代码生成了Wizard控件,并在Wizard控件中自动生成了WizardSteps标签,这个标签规范了向导控件中的步骤,如图5-45所示。在向导控件中,系统会生成WizardSteps控件来显示每一个步骤,如图5-46所示。
向导控件
图5-45 向导控件
完成后的向导控件
图5-46 完成后的向导控件

  在ASP.NET 2.0之前,并没有Wizard向导控件,必须创建自定义控件来实现Wizard向导控件的效果,如视图控件。而在ASP.NET 2.0之后,系统就包含了向导控件,同样该控件也保留到了ASP.NET 3.5。向导控件能够根据步骤自动更换选项,如当还没有执行到最后一步时,会出现【上一步】或【下一步】按钮以便用户使用,当向导执行完毕时,则会显示完成按钮,极大的简化了开发人员的向导开发过程。

  向导控件还支持自动显示标题和控件的当前步骤。标题使用HeaderText属性自定义,同时还可以配置DisplayCancelButton属性显示一个取消按钮,如图5-47所示。不仅如此,当需要让向导控件支持向导步骤的添加时,只需配置WizardSteps属性即可,如图5-48所示。
显式“取消”按钮
图5-47 显式“取消”按钮
配置步骤
图5-48 配置步骤

  Wizard向导控件还支持一些模板。用户可以配置相应的属性来配置向导控件的模板。用户可以通过编辑StartNavigationTemplate属性、FinishNavigationTemplate属性、StepNavigationTemplate属性以及SideBarTemplate属性来进行自定义控件的界面设定。这些属性的意义如下所示:
?1)StartNavigationTemplate:该属性指定为Wizard控件的Start步骤中的导航区域显示自定义内容。
?2)FinishNavigationTemplate:该属性为Wizard控件的Finish步骤中的导航区域指定自定义内容。
?3)StepNavigationTemplate:该属性为Wizard控件的Step步骤中的导航区域指定自定义内容。
?4)SideBarTemplate:该属性为Wizard控件的侧栏区域中指定自定义内容。
  以上属性都可以通过可视化功能来编辑或修改,如图5-49所示。
导航控件的模板支持
图5-49 导航控件的模板支持

  导航控件还能够自定义模板来实现更多的特定功能,同时导航控件还能够为导航控件的其他区域定义进行样式控制,如导航列表和导航按钮等。

5.15.2 导航控件的事件
  当双击一个导航控件时,导航控件会自动生成FinishButtonClick事件。该事件是当用户完成导航控件时被触发。导航控件页面HTML核心代码如下所示。
+展开
-HTML
<body>
    <form id="form1" runat="server">
    <asp:Wizard ID="Wizard1" runat="server" ActiveStepIndex="2" 
        DisplayCancelButton="True" onfinishbuttonclick="Wizard1_FinishButtonClick">

        <WizardSteps>
            <asp:WizardStep runat="server" title="Step 1">
                执行的是第一步</asp:WizardStep>
            <asp:WizardStep runat="server" title="Step 2">
                执行的是第二步</asp:WizardStep>
            <asp:WizardStep runat="server" Title="Step3">
                感谢您的使用</asp:WizardStep>
        </WizardSteps>
    </asp:Wizard>
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
    </div>
    </form>
</body>

  上述代码为向导控件进行了初始化,并提示用户正在执行的步骤,当用户执行完毕后,会提示感谢您的使用并在相应的文本标签控件中显示“向导控件执行完毕”。当单击示导航控件时,会触发FinishButtonClick事件,通过编写FinishButtonClick事件能够为导航控件进行编码控制,示例代码如下所示。
+展开
-C#
        protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
        {
            Label1.Text = "向导控件执行完毕";
        }

  在执行的过程中,标签文本会显式执行的步骤,如图5-50所示。当运行完毕时,Label标签控件会显示“向导控件执行完毕”,同时向导控件中的文本也会呈现“感谢您的使用”字样。运行结果如图5-51所示。
执行第二步
图5-50 执行第二步
用户单击完成后执行事件
图5-51 用户单击完成后执行事件

  向导控件不仅能够使用FinishButtonClick事件,同样也可以使用PreviousButtonClick和FinishButtonClick事件来自定义【上一步】按钮和【下一步】按钮的行为,同样也可以编写CancelButtonClick事件定义单击【取消】按钮时需要执行的操作。

加支付宝好友偷能量挖...


评论(0)网络
阅读(230)喜欢(0)Asp.Net/C#/WCF