2009-07-28 15 views
23

से कोड से मान्य है या नहीं, क्या कोई तरीका है जिसे मैं कॉल कर सकता हूं जो एक विशेष सत्यापन समूह मान्य है या नहीं, इसके बारे में एक बूलियन मान पुनर्प्राप्त करता है? मैं वास्तव में सत्यापन संदेश या सारांश प्रदर्शित नहीं करना चाहता - मैं सिर्फ यह जानना चाहता हूं कि यह मान्य है या नहीं।यह जांचना कि क्या सत्यापन कोड

कुछ की तरह:

Page.IsValid("MyValidationGroup") 

उत्तर

14
protected bool IsGroupValid(string sValidationGroup) 
{ 
    foreach (BaseValidator validator in Page.Validators) 
    { 
     if (validator.ValidationGroup == sValidationGroup) 
     { 
     bool fValid = validator.IsValid; 
     if (fValid) 
     { 
      validator.Validate(); 
      fValid = validator.IsValid; 
      validator.IsValid = true; 
     } 
     if (!fValid) 
      return false; 
     } 

    } 
    return true; 
} 
+2

+1 आप 'पेज। गेटवालिडेटर्स ("") का भी उपयोग कर सकते हैं, जो कोड को थोड़ा सा सरल बना देगा। – James

4

इस प्रयास करें:

Page.Validate("MyValidationGroup"); 
if (Page.IsValid) 
{ 
    //Continue with your logic 
} 
else 
{ 
    //Display errors, hide controls, etc. 
} 

नहीं वास्तव में आप क्या चाहते हैं, लेकिन उम्मीद है कि करीब है।

+0

तो पृष्ठ होगा। वैधता मेरे सत्यापन को प्रदर्शित करने के लिए सारांश? –

+0

यदि आप इस समाधान का उपयोग इस तरीके से करना चाहते हैं तो आपको सत्यापन सारांश को प्रोग्रामेटिक रूप से अक्षम/छिपाने की आवश्यकता होगी। –

32

क्या आपने Page.Validate(string) विधि का उपयोग करने का प्रयास किया है? प्रलेखन के आधार पर, ऐसा लगता है कि यह वही हो सकता है जो आप चाहते हैं।

Page.Validate("MyValidationGroup"); 
if (Page.IsValid) 
{ 
    // your code here. 
} 

ध्यान दें कि नियंत्रण पर वैधकर्ता भी पोस्टबैक का कारण बनेंगे। एमएसडीएन लेख से स्निप करें ...

मान्य विधि निर्दिष्ट सत्यापन समूह को मान्य करती है। एक सत्यापन समूह पर मान्य विधि कॉल करने के बाद, अगर है विधि सच वापस आ जाएगी तभी जब दोनों निर्दिष्ट सत्यापन समूह और नियंत्रण की सत्यापन समूह है कि पेज वजह से सर्वर पर पोस्ट किए जाने की मान्य हैं।

+0

उल्लेख करना उचित है कि यह असफल सत्यापन पर सत्यापन संदेश प्रदर्शित करेगा। – modiX

3

Page.IsValid यदि मान्य सत्यापन समूहों में से किसी के अवैध होने का झूठा हो जाएगा। आप एक समूह को मान्य और स्थिति देखने के लिए चाहते हैं, की कोशिश:

protected bool IsGroupValid(string sValidationGroup) 
    { 
     Page.Validate(sValidationGroup); 
     foreach (BaseValidator validator in Page.GetValidators(sValidationGroup)) 
     { 
      if (!validator.IsValid) 
      { 
       return false; 
      } 
     } 
     return true; 
    } 
6
var isValidGroup = Page 
        .GetValidators(sValidationGroup) 
        .Cast<IValidator>() 
        .All(x => x.IsValid); 
1

पावेल का जवाब काम करता है लेकिन सबसे सरल नहीं है। यहां बताया गया है कि मैंने इसे कैसे हल किया:

protected Boolean validateGroup(String validationGroupName) { 
     Boolean isGroupValid = true; 

     foreach (BaseValidator validatorControl in Page.GetValidators(validationGroupName)) { 
      validatorControl.Validate(); 

      if (!validatorControl.IsValid) 
       isGroupValid = false; 
     } 

     if (!isGroupValid) 
      return false; 
     else 
      return true; 
    } 
संबंधित मुद्दे