如何将从子控件到父控件的验证错误冒泡

时间:2014-07-08 19:07:03

标签: c# asp.net webforms custom-controls custom-validators

我的asp.net webform页面有一个用户控件( Control1 .ascx)和一个Save按钮。 Control1包含另一个用户控件 Control2 .ascx,其中包含多个自定义验证程序。

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
 if (somecheck1)
     args.IsValid = false;
 else
     args.IsValid = true;
}

protected void CustomValidator2_ServerValidate(object source, ServerValidateEventArgs args)
{
 if (somecheck2)
     args.IsValid = false;
 else
     args.IsValid = true;
}

如果 Control2 上的任何验证器失败,我不希望执行Control1.Save代码。如何实现这一目标?我正在考虑在 Control2 上添加有效属性,并在“保存”按钮代码中检查该属性。这种合理的方法吗?还应该在有效属性中做什么?

编辑:感谢您的回复,但我无法解决这个问题。我在Handling of validation errors from child controls

发布了一个不同的问题,其中包含更具体的代码示例

1 个答案:

答案 0 :(得分:1)

执行page.validate("customValidator1");,其中customValidator1是您的验证组。然后触发Page.IsValid();如果第一个组验证失败,那么Page.IsValid()将返回false。在你的逻辑中实现这一点。