我有一个WebForm,它包含几十个UI元素(所有服务器控件)。我通过使用asp:占位符控件并在回发之间设置它们的可见性,将UI元素分成不同的步骤,从而将整个页面变成类似向导的用户体验。一次只能看到一个占位符。
如果UI体验仅仅是从步骤1到步骤10,那么创建一个通用的Next / Prev按钮处理程序来完成这些步骤是非常简单的。但是,有一些UI元素可以确定显示哪些步骤(向导窗格)。 (两个单选按钮,不同页面上的两个复选框)
是否有优雅或简单的方法来实现此流逻辑而无需为页面上的每个Next / Prev按钮创建专用的Click处理程序?如果有这样的模式,那就是我。
答案 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模板中声明,并且效果很好。