C# 用一个按钮触发多个验证组?

C# 用一个按钮触发多个验证组?,c#,asp.net,validation,C#,Asp.net,Validation,假设页面TestPage.aspx有两个控件。第一个控件是一个地址控件,它有一个名为“AddressGroup”的验证组。此组包含多个验证控件,这些控件在该控件的验证摘要中列出。第二个控件是信用卡控件,具有名为“CreditCardGroup”的验证组。它还有几个验证器和一个摘要来显示结果。为了解决这个问题,页面上有一些随机控件,它们也有绑定到第三个ValidatorSummary控件的验证器 当用户按下“全部完成”按钮时,我希望页面触发所有三个验证组。按钮本身可以绑定到单个组或未标记的组。据我

假设页面TestPage.aspx有两个控件。第一个控件是一个地址控件,它有一个名为“AddressGroup”的验证组。此组包含多个验证控件,这些控件在该控件的验证摘要中列出。第二个控件是信用卡控件,具有名为“CreditCardGroup”的验证组。它还有几个验证器和一个摘要来显示结果。为了解决这个问题,页面上有一些随机控件,它们也有绑定到第三个ValidatorSummary控件的验证器

当用户按下“全部完成”按钮时,我希望页面触发所有三个验证组。按钮本身可以绑定到单个组或未标记的组。据我所知,它不能与多个组绑定


解决方案不是从控件中提取验证,因为这会降低将它们放在单独控件中的价值。感谢您的想法。

在按钮的单击处理程序中分别调用每个验证组的验证方法:

bool isValidTest = false;
Validate("AddressGroup");
isValidTest = IsValid;
Validate("CreditCardGroup");
isValidTest &= IsValid;
// etc.
if (!isValidTest) return;
您可能遇到的下一个问题是ValidationSummary控件链接到单个验证组。我发现显示多个组的所有错误消息(无需遍历控件树)的唯一方法是使用多个ValidationSummary控件

对于用户控件,您可能希望其Validate方法对其包含的所有控件执行验证,并显示其自己的摘要

编辑以添加:不需要isValidTest变量。根据文件:

请注意,当您调用Validate 方法,IsValid属性反映 验证了所有组的有效性 到目前为止


你说的是客户端验证还是服务器端验证?Jamie的答案对于服务器端来说是正确的,但是对于客户端验证,您可能需要编写自己的JS函数来触发对所有三个组的一致验证

调用
Page.Validate()
在服务器端,它将验证所有验证程序。

对于JS,您可以调用Page\u ClientValidate(),这将触发页面中所有组的验证。