2011-06-22 12 views
5

मेरे पास पृष्ठ पर उपयोगकर्ता नियंत्रण के दो उदाहरण हैं। दोनों में फ़ील्ड और एक सबमिट बटन है।उपयोगकर्ता नियंत्रण सत्यापन समूह समस्या

मैंने फ़ील्ड और सत्यापनकर्ताओं पर सत्यापन समूह सेट किए हैं, लेकिन किसी कारण से दो उपयोगकर्ता नियंत्रण 'सत्यापनकर्ताओं को आग लगाना।

+0

क्या आप हमें अपना कोड दिखा सकते हैं? – Teletha

उत्तर

3

आप अपने उपयोगकर्ता नियंत्रण में एक संपत्ति ValidationGroup का पर्दाफाश कर सकते हैं जिसे आप पृष्ठ से सेट करेंगे। यह मान व्यूस्टेट में संग्रहीत किया जाना चाहिए, ताकि उपयोगकर्ता नियंत्रण के प्रत्येक उदाहरण को अलग-अलग सत्यापन समूह मिले (यदि आपका पृष्ठ अलग-अलग असाइन करता है)।

उदाहरण के लिए:

Public Property ValidationGroup() As String 
Get 
    Return CStr(ViewState("ValidationGroup")) 
End Get 
Set(ByVal value As String) 
    SetValidationGroupOnChildren(Me, value) 
    ViewState("ValidationGroup") = value 
End Set 
End Property 

Private Sub SetValidationGroupOnChildren(ByVal parent As Control, ByVal validationGroup As String) 
    For Each ctrl As Control In parent.Controls 
     If TypeOf ctrl Is BaseValidator Then 
      CType(ctrl, BaseValidator).ValidationGroup = validationGroup 
     ElseIf TypeOf ctrl Is IButtonControl Then 
      CType(ctrl, IButtonControl).ValidationGroup = validationGroup 
     ElseIf ctrl.HasControls() And ctrl.Visible = True Then 
      SetValidationGroupOnChildren(ctrl, validationGroup) 
     End If 
    Next 
End Sub 

आप अपने UserControl में विभिन्न ValidationGroups की जरूरत है ऊपर पुनरावर्ती क्रिया से काम नहीं चलेगा, तो आप इसे मैन्युअल रूप से आवंटित कर सकते हैं कोडबेंड से। उदाहरण के लिए उपयोगकर्ता नियंत्रण नियंत्रण आईडी (पर्याप्त हो सकता है) या क्लाइंट आईडी को अनुसार नियंत्रण के सत्यापन समूह के सामने डालकर। एक अच्छी जगह जहां आप इस फ़ंक्शन को कॉल कर सकते हैं PreRender होगा।

+0

आप आदमी हैं !!! – Burt

7

भी इस विधि का काम करता है:

Dim valGroup = String.format("{0}-validation", Guid.NewGuid()) 

rfv001.ValidationGroup = valGroup 
rfv002.ValidationGroup = valGroup 
rfv003.ValidationGroup = valGroup 
rfv004.ValidationGroup = valGroup 
rfv005.ValidationGroup = valGroup 

btnSubmit.ValidationGroup = valGroup 

आप केवल ValidationGroup मैन्युअल के लिए मूल्यों को निर्धारित करने की जरूरत है।

+0

मैं इस समाधान को पसंद करता हूं। धन्यवाद – kaiyaq

संबंधित मुद्दे