我有一个asp:wizard
包含五个 WizardSteps 的控件。所有这些步骤都有表单控件,并且这些控件中的大多数都有验证器。当用户使用“下一个”和“上一个”按钮逐步完成向导时,一切正常,并且应按原样触发验证。但是,如果用户选择使用 SideBar 中的链接导航向导,他或她可以跳过一些步骤。提交最后一页(即摘要页)时,向导中的控件可能无效。
我想做的是在用户单击完成按钮或用户进入摘要页面时检查所有控件的状态(或运行所有验证器)。我已尝试通过执行以下操作在 FinishButtonClick 事件中运行所有验证器:
bool validates = true;
foreach (IValidator validator in this.Validators) {
validator.Validate();
if (!validator.IsValid) {
validates = false;
}
}
e.Cancel = !validates;
但是当我这样做时,每个验证者都声称它们是有效的。我还尝试将所有控件设置为 Visible = true; 在此代码块之前,但这没有效果。知道有什么问题吗?还是这样做的更好方法,也许是我缺少的向导控件的本机功能?