ASP.NET 2.0中多页面表单的使用


 有时我们想要把表单填充过程分成几步(页面)来做。在过去使用ASP的时候,我们解决这一问题是在每一步之后把输入的数据保存到数据库表中。在数据表中我们定义了一些标志来区分这些表单填充过程是否已经完成。

    然而ASP.NET 2.0提供了更加方便的途径,我们可以先填完多页面表单,然后把这些输入的数据存储到数据库中的表里。解决这个问题,我们有可用的MultiView控件和Wizard控件。下面的图片表明了Visual Studio 2005工具箱中这些控件的使用。

 

图1 Visual Studio工具箱中的MultiView和View控件

     MultiView做为一组View控件的容器,而对于每个View我们可以放置更多的控件。在这篇文章里我们可以把View视为多个页面表单中的一个页面。Wizard控件提供了比MultiView更丰富的功能,它提供在几个表单页面、头部和包含所有步骤列表(已标明了当前步骤)的信息面板中移动的附加导航功能, 这篇文章里我们集中讨论的是MultiView控件,因为它允许我们创建完全个性化的多页面表单。MultiView的使用是非常简单的,下面的代码片断说明了这一点:

<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:View ID="View3" runat="server"> ... </asp:View>
      <asp:View ID="View4" runat="server"> ... </asp:View>
</asp:MultiView>


在这个片断里我们创建了一个带有4个View控件的MultiView控件。MultiView作为一个容器可以容纳几个View类型的控件,但是只能有一个View是活动的。只有在活动的View里的控件才会被交给客户端。我们可以设置活动的View设置选项中ActiveViewIndex属性或者调用MultiView 控件中的SetActiveView方法。


做为使用MultiView控件来创建多页面表单的练习演示,我们使用表单填入一些基本个人数据。第一步填入个人数据比如名和姓。第二步填入联系方式数据,第三步将会显示输入数据的汇总和表单处理(例如保存到数据库里)的按钮。下面的图片说明了如何在Visual Studio 2005(设计模式)中使用MultiView控件创建这个表单:

 

              

图2 MultiView控件的设置模式

这个演示的源代码可以点击这里进行下载。

在这个样例中,导航按钮的可见性在重载的OnPreRender方法中设置。下面的图片显示了创建多页面表单练习的演示。

 


 

   

   最后我们描述一下使用MultiView控件在postbacks之间存储数据的方法。MultiView使用ViewState来保存放置在View中的控件的状态。所有View的状态都存储在ViewState中。当表单中包含太多带有许多控件的页面时将导致ViewState增大。这种做法有时是不明智的,因为这增大了传送到客户端的页面的尺寸。
    我们可以通过改变ViewState的存储位置来解决这一问题。重载System.Web.UI.Page 类中的LoadPageStateFromPersistenceMedium和SavePageStateToPersistenceMedium方法,我们能够实现ViewState存储到数据库的客户机制。

本文作者:

 有时我们想要把表单填充过程分成几步(页面)来做。在过去使用ASP的时候,我们解决这一问题是在每一步之后把输入的数据保存到数据库表中。在数据表中我们定义了一些标志来区分这些表单填充过程是否已经完成。

    然而ASP.NET 2.0提供了更加方便的途径,我们可以先填完多页面表单,然后把这些输入的数据存储到数据库中的表里。解决这个问题,我们有可用的MultiView控件和Wizard控件。下面的图片表明了Visual Studio 2005工具箱中这些控件的使用。

 

图1 Visual Studio工具箱中的MultiView和View控件

     MultiView做为一组View控件的容器,而对于每个View我们可以放置更多的控件。在这篇文章里我们可以把View视为多个页面表单中的一个页面。Wizard控件提供了比MultiView更丰富的功能,它提供在几个表单页面、头部和包含所有步骤列表(已标明了当前步骤)的信息面板中移动的附加导航功能, 这篇文章里我们集中讨论的是MultiView控件,因为它允许我们创建完全个性化的多页面表单。MultiView的使用是非常简单的,下面的代码片断说明了这一点:

<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:View ID="View3" runat="server"> ... </asp:View>
      <asp:View ID="View4" runat="server"> ... </asp:View>
</asp:MultiView>


在这个片断里我们创建了一个带有4个View控件的MultiView控件。MultiView作为一个容器可以容纳几个View类型的控件,但是只能有一个View是活动的。只有在活动的View里的控件才会被交给客户端。我们可以设置活动的View设置选项中ActiveViewIndex属性或者调用MultiView 控件中的SetActiveView方法。


做为使用MultiView控件来创建多页面表单的练习演示,我们使用表单填入一些基本个人数据。第一步填入个人数据比如名和姓。第二步填入联系方式数据,第三步将会显示输入数据的汇总和表单处理(例如保存到数据库里)的按钮。下面的图片说明了如何在Visual Studio 2005(设计模式)中使用MultiView控件创建这个表单:

 

              

图2 MultiView控件的设置模式

这个演示的源代码可以点击这里进行下载。

在这个样例中,导航按钮的可见性在重载的OnPreRender方法中设置。下面的图片显示了创建多页面表单练习的演示。

 


 

   

   最后我们描述一下使用MultiView控件在postbacks之间存储数据的方法。MultiView使用ViewState来保存放置在View中的控件的状态。所有View的状态都存储在ViewState中。当表单中包含太多带有许多控件的页面时将导致ViewState增大。这种做法有时是不明智的,因为这增大了传送到客户端的页面的尺寸。
    我们可以通过改变ViewState的存储位置来解决这一问题。重载System.Web.UI.Page 类中的LoadPageStateFromPersistenceMedium和SavePageStateToPersistenceMedium方法,我们能够实现ViewState存储到数据库的客户机制。

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3