2012-08-29 7 views
6

मैं संसाधन फ़ाइल से CustomValidator के लिए ErrorMessage लोड करना चाहता हूं।मैं संसाधन फ़ाइल से कस्टम वैलिडेटर पर त्रुटि संदेश कैसे लोड करूं?

मेरे पास मेरी CustomValidator तो तरह तैयार:

<asp:CustomValidator ID="cv1" runat="server" ControlToValidate="txt1" 
     ErrorMessage="TEXT TO BE LOCALIZED" OnServerValidate="cv1_Validate" /> 

और मेरी मान्यता विधि इस प्रकार है:

protected void cv1_Validate(object source, ServerValidateEventArgs e) 
{ 
    if (FalseCondition) 
    { 
     e.IsValid = false; 
    } 
    else 
    { 
     e.IsValid = true; 
    } 
} 

सत्यापन ठीक से काम करता है, लेकिन मैं ErrorMessage खींचा जा करना चाहते हैं मेरी स्थानीय संसाधन फ़ाइल से।

संपादित करें: meta:resourcekey का उपयोग करके ऐसा करने का कोई तरीका है, तो मैं भी उत्सुक हूं।

उत्तर

10

आप अपने पृष्ठ (या नियंत्रण) के लिए एक स्थानीय संसाधन है मान लिया जाये कि, यह

ErrorMessage="<%$ resources:ResourceName %>" 

करने के लिए मामले में जिस तरह से आप कुछ इस तरह करना चाहिए कि आप एक वैश्विक संसाधन फ़ाइल से पाठ प्राप्त होगा

ErrorMessage="<%$ resources:Strings, ResourceName %>" 

कहाँ Strings फ़ाइल का नाम है। इस दृष्टिकोण को स्पष्ट स्थानीयकरण कहा जाता है।

संपादित

आप meta:resourcekey उपयोग कर सकते हैं। इसे निहित स्थानीयकरण कहा जाता है। आपको स्थानीय संसाधनों की आवश्यकता होगी क्योंकि यह दृष्टिकोण वैश्विक संसाधनों के लिए मान्य नहीं है।

  1. सुनिश्चित करें कि आप स्थानीय संसाधन फ़ाइलें (.resx फ़ाइलों) कि निम्नलिखित मानदंडों को पूरा है कि बनाओ:

    • वे एक App_LocalResources फ़ोल्डर में हैं।

    • आधार नाम पृष्ठ के नाम से मेल खाता है।

    उदाहरण के लिए, यदि आप Default.aspx नामित पेज के साथ काम कर रहे हैं, संसाधन फ़ाइलों Default.aspx.resx (डिफ़ॉल्ट संसाधनों के लिए), Default.aspx.es.resx, Default.aspx नाम हैं .es-mx.resx, और इसी तरह।

    • फ़ाइल में संसाधन नामकरण सम्मेलन संसाधनकी का उपयोग करते हैं। "संपत्ति"।

    उदाहरण के लिए, मुख्य नाम बटन 1। "टेक्स्ट"।

  2. नियंत्रण मार्कअप में, एक निहित स्थानीयकरण विशेषता जोड़ें।

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

    < एएसपी: बटन आईडी = "Button1" runat = "सर्वर" पाठ = "DefaultText" मेटा: resourcekey = "Button1"/>

स्रोत : MSDN

1

यदि आप इसे कोड-बैक में करना चाहते हैं, तो आप निम्न का उपयोग कर सकते हैं:

ResourceManager resmgr = new ResourceManager("YourApplication.YourBaseResourceFile ", 
           Assembly.GetExecutingAssembly()); 

protected void cv1_Validate(object source, ServerValidateEventArgs e) 
{ 

if (FalseCondition) 
    { 
     CultureInfo ci = Thread.CurrentThread.CurrentCulture;  
     String str = resmgr.GetString("Error Msg Key in Resource File"); 
     cv1.ErrorMessage =str;  
     e.IsValid = false; 
    }  
else 
    { 
    e.IsValid = true; 
    } 
} 
संबंधित मुद्दे