2011-04-26 65 views
6


如果我有一个以上的asp.net服务器验证的同一控制,
(假设他们都可以在特定情况下返回false),我想只显示一个消息(除验证摘要),
我该如何实现此目标并将所有链接到相同控件的验证器的Text属性分组?重复验证

如果我实现了这个情况我收到输出验证程序中的每一个的Text属性...

+2

试着写一个定制的验证 – Dotnet 2011-04-26 12:48:47

回答

6

把这两个验证在分隔ValidationGroup控制,并创建一个新的自定义验证,检查这两个验证控件统一的信息。

protected void CustomValidator (object sender, ServerValidateEventArgs e) 
{ 
    e.IsValid = validator1.IsValid && validator2.IsValid 
} 
+0

但如果我把它们放在单独的'ValidationGroup'中,其中一个IsValid不会相关,因为他将处于激发事件的控件的diffrenet“ValidationGroup”中... – liron 2011-04-26 15:31:23

+0

也许我可以将相同的'ValidationGroup'放在同一个'ValidationGroup'中,但保留Text Empty和CustomControl将ErrorMessage保留为空,并仅放入我想要显示的文本... – liron 2011-04-26 15:33:33

+0

是的,这是一个不错的选择。 – Homam 2011-04-26 15:37:21

0

您可以用JavaScript函数来获取它,并把它放在CustomeValidator &设置文本味精customeValidator

function ValidateTwoValidations(oSrc, args) { 
    var Val1 = document.getElementById("Validator1ClientId"); 
    var Val2 = document.getElementById("Validator2ClientId"); 

    if (Val1.IsValid = false && Val2.IsValid = false){ 
     args.IsValid = false; 
     } 
    else { 
     args.IsValid = true; 
      } 
}