在我的按钮单击中,如果符合某个条件,我想使页面验证失败。问题是Page.IsValid是只读的。
这就是我在按下按钮时尝试的内容:
protected override void CreateChildControls()
{
base.CreateChildControls(container);
MyBtn += MyBtn_Click;
MyBtn += MyBtn_Click2; // Cannot move this
}
protected void MyBtn_Click(object sender, System.EventArgs e)
{
CaptchaControl.Validate();
if (!CaptchaControl.IsValid)
{
Page.IsValid = false; // Error because read-only
// Stop before running MyBtn_Click2!
}
}
如果我的验证码验证失败,我想在它开始运行第二次点击事件之前立即返回页面。关于如何做到这一点的任何想法?
答案 0 :(得分:0)
我个人会使用隐藏字段并根据需要进行标记。在其中放置一个默认值,如果验证码失败,请删除该值并重新验证页面。
if (!CaptchaControl.IsValid)
{
myHiddenField.Value = null;
Page.Validate();
}
如果myBtn2控件使用if (Page.IsValid)
执行代码,则隐藏的必填字段应为空,现在无效。