2011-04-26 53 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; 
      } 
}