2010-11-05 28 views
5

मेरे पास DropDownList मानों पर भाषा विशिष्ट अनुवाद प्रबंधित करने के लिए ड्रॉपडाउनलिस्ट के आसपास एक रैपर उपयोगकर्ता नियंत्रण नियंत्रण है।एएसपी.नेट - उपयोगकर्ता नियंत्रण के अंदर नियंत्रण को नियंत्रित करना

मेरे पास एक आवश्यक फ़ील्ड सत्यापनकर्ता भी है जो आंतरिक ड्रॉपडाउन सूची के लिए पुनः प्राप्त किया गया है।

सत्यापन के लिए उपयोगकर्ता नियंत्रण के माध्यम से मैं इस नियंत्रण का खुलासा कैसे कर सकता हूं?

... cannot be validated. at System.Web.UI.WebControls.BaseValidator.CheckControlValidationProperty(String name, String propertyName) 
     at System.Web.UI.WebControls.BaseValidator.ControlPropertiesValid() 

संपादित करें:: मैं अब उपयोग कर रहा हूँ ...

[ValidationPropertyAttribute("SelectedValue")] 

....

public string SelectedValue 
{ 
    get { return cboI18nItems.SelectedValue; } 
} 
साथ

त्रुटि मैं वर्तमान में हो रही है इस प्रकार है

जो अब मैं काम कर रहा हूं अगर मैं पोस्टबैक पर पेज की IsValid संपत्ति की जांच करता हूं।

उत्तर

5

आपका वैलिडेटर आपके उपयोगकर्ता नियंत्रण के अंदर होना चाहिए लेकिन पृष्ठ से सुलभ होना चाहिए।

या सेट ValidationProperty UserControl

  1. पर UserControl के अंदर सत्यापनकर्ता रखो। यह डेटा प्रविष्टि नियंत्रण की आईडी तक पहुंच सकता है।
  2. कस्टम वैलिडेटर का उपयोग करें। अपनी ControlToValidate प्रॉपर्टी का उपयोग न करें। इसके बजाय, अपने मूल्यांकन के भीतर फ़ंक्शन आप उपयोगकर्ता नियंत्रण के माध्यम से ड्रॉपडाउनलिस्ट तक पहुंचेंगे। आप संभवतः ड्रॉपडाउनलिस्ट फ़ील्ड सार्वजनिक बना देंगे ताकि देखा जा सके जब आप उपयोगकर्ताऑब्जेक्ट को उपयोगकर्ता कंट्रोल की कक्षा में टाइप करते हैं।
  3. ValidationPropertyAttribute का उपयोग करना संभव है। आपको अपने उपयोगकर्ता नियंत्रण में कोई संपत्ति जोड़ने की आवश्यकता है जो डेटा के मान मान देता है।

मिला here

+0

धन्यवाद प्रमाणीकरण प्रॉपर्टी ने काम किया, मैं भूल रहा था कि यह केवल सर्वरसाइड पर हो रहा है, जिसके लिए मुझे पोस्टबैक पर पृष्ठ की IsValid संपत्ति की जांच करने की आवश्यकता है। – cweston

+0

धन्यवाद, "इसके नियंत्रण के लिए अपनी संपत्ति का उपयोग न करें" यह मेरे लिए किया था। – JanBorup

1

मैंने इस मुद्दे को ऊपर सुझाए गए सुझावों से थोड़ा अलग तरीके से संभाला। यहां मेरे कोड से लिया गया एक कोड स्निपेट है:

Protected Sub ValidateCreditCard() 
    Dim validators = Page.GetValidators("cc") 
    For Each v In validators 
     DirectCast(v, BaseValidator).Validate() 
    Next 
End Sub 

वीबीएनईटी कोड लेकिन इसे समझना आसान होना चाहिए।

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