我已经尝试在代码和标记中设置它,但是当单击下一步按钮时,页面被验证,我想防止这种情况发生并控制何时应该进行验证,何时不进行。任何建议或代码示例将不胜感激
问问题
11844 次
1 回答
5
WizardStep
最简单的方法是从要跳过验证的地方删除所有验证器控件。
但是,如果您需要高级功能,则需要手动设置CausesValidation
Next/Previous 按钮的属性。StepNavigationTemplate
ASP.NET 向导控件不公开可让您直接访问 NavigationTemplate 中的控件的属性,也不公开任何属性以访问 NavigationTemplate。所以,我们需要依靠FindControl
方法来完成所有的搜索。
我在研究这个问题时发现的一条方便的信息是,在运行时,它是一个名为“StepNavigationTemplateContainerID”StepNavigationTemplate
的内部 ASP.NET 类型。StepNavigationTemplateContainer
这使我能够找到StepNavigationTemplate
下一个按钮。
代码如下:
protected void Wizard1_ActiveStepChanged(object sender, EventArgs e)
{
int step = Wizard1.ActiveStepIndex;
// Disable validation for Step 2. (index is zero-based)
if (step == 1)
{
ToggleValidation(false);
}
else // Enable validation for subsequent steps.
{
ToggleValidation(true);
}
}
private void ToggleValidation(bool flag)
{
WebControl stepNavTemplate = this.Wizard1.FindControl("StepNavigationTemplateContainerID") as WebControl;
if (stepNavTemplate != null)
{
Button b = stepNavTemplate.FindControl("StepNextButton") as Button;
if (b != null)
{
b.CausesValidation = flag;
}
}
}
于 2009-05-01T13:20:55.257 回答