C# 在进行验证之前,无法调用的解决方案:Page.IsValid

C# 在进行验证之前,无法调用的解决方案:Page.IsValid,c#,asp.net,validation,C#,Asp.net,Validation,我正在使用一个向导控件,其中有一个“下一步”按钮,该按钮的结果为validation=true。我还有一个复选框,在事件处理程序中更改时,我会为next按钮设置causes validation=false。当点击该按钮时,我得到以下信息: 在进行验证之前,无法调用Page.IsValid。应该在事件处理程序中查询具有CausesValidation的控件 代码如下: protected void chk_CheckChanged(object sender, EventArgs e)

我正在使用一个向导控件,其中有一个“下一步”按钮,该按钮的结果为validation=true。我还有一个复选框,在事件处理程序中更改时,我会为next按钮设置causes validation=false。当点击该按钮时,我得到以下信息:

在进行验证之前,无法调用Page.IsValid。应该在事件处理程序中查询具有CausesValidation的控件

代码如下:

protected void chk_CheckChanged(object sender, EventArgs e)
    {
        CheckBox chk = (CheckBox)sender;
        ImageButton ibtnStepNext = (ImageButton)(this.WizardSummaryTemplate.CustomNavigationTemplateContainer.FindControl("StepNextButton"));

        ibtnStepNext.CausesValidation = (!chk.Checked);

    }

如果要禁用“下一步”按钮的验证以避免出现此错误,建议采用什么解决方案?

我的解决方案是更改按钮的验证组,它按预期工作。

是否显式调用
Page.IsValid
?是-但是,调用Page.Validate()在Page.IsValid之前不能解决我的问题。在此错误之前,不会执行调用Page.Validate()或Page.IsValid的方法。它发生在复选框检查已更改事件的初始回发中。