注意我们在每个view控件中,都放置了next,previous等按钮,以方便页面的导航。此外,可以对每个按钮的commandname属性进行设置,如下表
CommandName NextView 导航到下一个页面.PrevView 导航到前一个页面SwitchViewByID 当command name属性设置为 SwitchViewByID时,必须设置Command Argument属性,比如CommandArgument="View1"表示当点该按钮时,跳转到ID为View1的页面中 在这个例子中,我们都设置每个按钮的Command name属性为NextView或者PreView,最后我们的代码结构如下(具体代码见附件): <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0"><asp:View ID="View1" runat="server">...</asp:View><asp:View ID="View2" runat="server">...</asp:View></asp:Multiview> 运行我们的应用,首先出现的是第一步,要求填入个人信息,如下图: 点"Next"按钮,则进入下一个页面: 再点Next按钮,则同样进入第3个页面,最后的第4个页面如下,可以看到输出了用户之前各页面输入的信息: 为了在最后输出用户之前输入的信息,在第3个页面(view)的Finished按钮中的事件中,写入如下代码: Partial Class SurveyProtected Sub btnFinish_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFinish.ClicklblFirstName.Text = txtFirstName.TextlblLastName.Text = txtLastName.TextlblEmailId.Text = txtEmail.TextIf rdoVB.Checked ThenlblLanguage.Text = "VB"ElseIf rdoCSharp.Checked ThenlblLanguage.Text = "C#"ElseIf rdoJava.Checked ThenlblLanguage.Text = "Java"End IfIf rdoMicrosoft.Checked ThenlblOrganization.Text = "Microsoft"ElseIf rdoSun.Checked ThenlblOrganization.Text = "Sun Microsystems"ElseIf rdoIBM.Checked ThenlblOrganization.Text = "IBM"End IfEnd SubWizard向导控件 在asp.net 2.0中,wizard向导控件比multiview控件更方便。Wizard控件本身已经设置了比如上一步,下一步,完成等按钮了,而且在设计视图状态下,可以根据自己需要查看每一步骤的页面的内容,而不象multiview控件那样,在设计视图下,在一个页面中,将全部所有的步骤涉及的页面都显示出来。下面看下wizard控件的重要属性和事件:
ActiveStepIndex - 显示当前是向导中的第几个步骤,在页面刚开始加载时,默认是0. DisplaySideBar - 当该属性设置为true时,则将整个流程的步骤全部显示在页面中。 DisplayCancelButton - 当该属性设置为true时,在每个页面中,都将显示一个cancel的按钮,要处理取消的事件,可以在 CancelButtonClick() 中编写代码 一些重要事件 ActiveStepChanged.---当从一个步骤转换到另一个步骤时,触发的事件 PreviousButtonClick.-当按"上一步"按钮时触发的事件 NextButtonClick. ---当按"下一步"按钮时触发的事件 FinishButtonClick.-----当"完成"按钮时触发的事件 CancelButtonClick. -----当"取消"按钮时触发的事件 下面,我们重新建立一个空白页面,同样使用之前的模版页面作为模版页。往页面里拖放一个wizard控件,在控件的wizardsteps属性中,点击并弹出新窗口,如下图所示 在这里通过"Add"增加步骤。在增加若干个步骤后,按确定按钮。回到wizard控件,选择并且点选wizard控件的右上角的智能感知标记,在弹出的窗口中的"Step"下拉列表中,可以选择每一个步骤的页面,分别为每一个步骤的页面添加相关控件,这里,我们设计了四个步骤,其中的第一个步骤的页面如下图所示,其他步骤的页面和代码见附件的代码:
最后,在最后一个页面的Finish按钮的事件中,写入如下代码,以显示之前几步用户的输入:
Protected Sub Wizard1_FinishButtonClick(ByVal sender As Object,ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles Wizard1.FinishButtonClick lblFirstName.Text = txtFirstName.Text lblLastName.Text = txtLastName.Text lblEmailId.Text = txtEmail.Text lblUserName.Text = txtUserName.Text If rdoDaily.Checked Then lblNewsletters.Text = "Daily Updates" ElseIf rdoWeekly.Checked Then lblNewsletters.Text = "Weekly Summary" ElseIf rdoNoThanks.Checked Then lblNewsletters.Text = "No Thanks" End IfEnd Sub
运行程序,首先看到的是第一个注册步骤,如下图
接下来,按Next按钮,进入第二个页面,如下图
最后,在倒数第二个页面中,点选Finish按钮,即可出现最后的显示总结页面,显示出前几步用户输入的内容
小结 在本文中,简单介绍了在asp.net 2.0中,如何使用multiview控件和wizard控件来进行简单开发。可以看到,如果在编写如用户注册等连续步骤的应用中,使用wizard控件往往会比使用multiview控件简单方便。
