2011-01-25 62 views
3

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

我想从组中知道是否有人使用过这个控件以及他们遇到了什么问题。这个控件是否有任何使用限制?

回答

1

我个人不喜欢精灵控制。它非常僵硬,我没有觉得与它合作非常愉快。从那时起,我已经在我的向导的每个步骤中使用了每个View中的MultiView控件和UpdatePanel以及User控件。这样它可以完全灵活。

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

这只是我在控制上的选择,虽然我没有给它第一次访问的机会。

3

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

我已经构建了一个向导,其中显示在侧栏中的步骤取决于您所处的步骤(以及您对此所做的操作)。接下来,您按Next或Previous时所执行的步骤也是动态确定的。

为了实现这一点,我阅读了很多关于动态禁用步骤,隐藏步骤以及添加和删除步骤的内容。后者用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中,因为此时向导将移至下一步,您将知道它是什么。