ASP.NET向导控制缺点

时间:2011-01-25 16:01:08

标签: asp.net wizard

我正在评估ASP.NET向导控件。我们需要从不同的步骤收集数据,验证数据,最后我应该能够显示数据摘要。

我想从小组了解是否有人使用过此控件以及他们面临的问题。此控件是否有任何使用限制?

2 个答案:

答案 0 :(得分:3)

如果您使用它,向导控件可以为您节省大量的管道时间 - 但是,学习使用它可能比您节省的管道时间花费更多。如果您打算重复使用它,那么了解其特性的初始投资可能是值得的。

我已经构建了一个向导,其中侧栏中显示的步骤取决于您所处的步骤(以及您对该点所做的操作)。因此,按下“下一个”或“上一个”时所指的步骤也是动态确定的。

为了实现这一点,我阅读了很多关于动态禁用步骤,隐藏步骤以及添加和删除步骤的内容。后者用ViewState引领我深入水中。值得一提的是,这是我的基本方法:

您可以通过将步骤ID(和标题,如果设置)设置为空字符串来控制侧边栏中可见的步骤,例如我在arrWizardSteps()中有步骤名称,我的步骤定义为整数常量,然后使用

  For i = intCREDENTIALS To intADDITIONAL_INFORMATION
    Wizard1.WizardSteps(i).ID = IIf(Wizard1.ActiveStepIndex < i, "", arrWizardSteps(i))
  Next

如果步骤相对独立,您可以通过调用相同的例程来处理SideBarButtonClick,PreviousButtonClick和NextButtonClick事件,该例程构造为处理离开当前步骤,然后输入下一个例程,而不管您单击哪个按钮来执行过渡。例如,例程可能存储当前步骤控件捕获的数据,并将一些数据加载到下一步的控件中。

如果您确实处理了这些事件,您可能需要自己处理更改ActiveStepIndex。如果你不改变它,向导将递增/递减ActiveStepIndex(取决于按下的按钮)(除非你在处理程序中设置e.Cancel = true,其中e是处理程序的WizardNavigationEventArgs参数)。

如果隐藏步骤的代码需要知道目标步骤,那么您需要将该代码放在PreRender中,因为此时向导将转移到下一步,您将知道它是什么。

答案 1 :(得分:1)

我个人不喜欢向导控件。它非常严格,我觉得它不是很好用。从那时起,我在我的向导的每个步骤中都使用了MultiView控件和UpdatePanel以及每个View中的User控件。这样就可以完全灵活。

使用MultiView方法,您还可以在设计器中轻松查看向导的所有步骤。

这只是我对控制的选择,但我第一次访问时并没有给它太大的机会。