是否有一种优雅/简单的方法来处理向导UI的逻辑流程

时间:2011-08-25 23:21:49

标签: c# asp.net webforms

我有一个WebForm,它包含几十个UI元素(所有服务器控件)。我通过使用asp:占位符控件并在回发之间设置它们的可见性,将UI元素分成不同的步骤,从而将整个页面变成类似向导的用户体验。一次只能看到一个占位符。

如果UI体验仅仅是从步骤1到步骤10,那么创建一个通用的Next / Prev按钮处理程序来完成这些步骤是非常简单的。但是,有一些UI元素可以确定显示哪些步骤(向导窗格)。 (两个单选按钮,不同页面上的两个复选框)

是否有优雅或简单的方法来实现此流逻辑而无需为页面上的每个Next / Prev按钮创建专用的Click处理程序?如果有这样的模式,那就是我。

3 个答案:

答案 0 :(得分:1)

看看这个:jQuery Form Wizard

我最近将一个表单转换为向导,它非常好用。它可能对你有用。

答案 1 :(得分:1)

创建母版页 将导航按钮添加到母版页。

创建一个继承自Web.UI.Page。

的抽象基类
 public abstract class WizardPage: Page
    {
        public abstract void NextStep();
        public abstract void PreviousStep();
    }

为NextStep和PreviousStep添加抽象方法。

将每个向导步骤创建为从基类继承的单独页面。

使用适当的导航在每个页面上实施NextStep和PreviousStep步骤。

连接主页面上的按钮以调用活动页面的方法...

 protected void NextButton_Click(object sender, EventArgs e)
        {
            if (Page is WizardPage)
            {
                WizardPage wizPage = (WizardPage)Page;
                wizPage.NextStep();
            }
        }

所有这一切 - 我会检查向导控件。

答案 2 :(得分:0)

我已经多次使用向导控件来处理你描述的情况类型。它需要一些学习,就像其他任何东西一样,但可以提供一个很好的用户体验。应该在向导的每个步骤中显示的控件都在WizardStep模板中声明,并且效果很好。