2008-10-29 13 views
13

मैं वैलिडेटर नियंत्रण (आवश्यक फ़ील्ड वैलिडेटर, तुलना वैलिडेटर, आदि) के कई रूपों का उपयोग कर रहा हूं और सत्यापनकर्ता की CssClass प्रॉपर्टी का उपयोग कर रहा हूं। मैं देख सकता हूं (फायरबग के माध्यम से) कि कक्षा लागू की जा रही है, लेकिन सत्यापनकर्ता नियंत्रण स्वयं एक शैली तत्व जोड़ रहा है, अर्थात् रंग: लाल। लेकिन मुझे वह नहीं चाहिए। मैं नियंत्रण केवल cssclass का उपयोग करना चाहता हूँ।एएसपी.Net वैलिडेटर डिफ़ॉल्ट शैली

मुझे पता है कि मैं Forecolor विशेषता को ओवरराइड कर सकता हूं, लेकिन मुझे परियोजना में प्रत्येक सत्यापनकर्ता पर ऐसा करना होगा। और अगर मैं भविष्य में सभी त्रुटि संदेश उपस्थितियों को बदलना चाहता हूं तो मैं वास्तव में अपनी स्टाइलशीट में अपनी सीएसएस कक्षा को बदलने में सक्षम होना चाहूंगा।

किसी के पास कोई भी संकेत है कि वैलिडेटर नियंत्रण को अपनी डिफ़ॉल्ट शैलियों का उपयोग न करने के लिए कैसे बताना है?

उत्तर

13

आप अपने सीएसएस फ़ाइल में ऐसा कर सकते हैं:

.validator 
{ 
    color: blue !important; 
} 

यह इनलाइन लाल शैली पर आ जाएगी।

+1

उत्कृष्ट। यह आईई 6 और एफएफ 3 में काम किया। मैं दूसरों को सही तरीके से जांच नहीं कर सकता, लेकिन यह मुझे परीक्षण के लिए मिल जाएगा। मैंने कभी सोचा नहीं! महत्वपूर्ण बात। किसी भी व्यक्ति की परवाह करने के लिए, वह जिस वैधता वर्ग का उपरोक्त है, वह कुछ भी हो सकता है - मेरा नाम कहा जाता है .error_text –

+4

यह एएसपी.नेट चूसने का एक अच्छा उदाहरण है। '! महत्वपूर्ण' का उपयोग करने के लिए रिज़ॉर्ट करना क्योंकि एएसपी.नेट 'शैली = "रंग को धक्का देता है: लाल" आप पर। –

+12

एफवाईआई। एएसपी.नेट 4.0 के रूप में: * बेसविलिएटर क्लास और सत्यापन नियंत्रण जो इससे प्राप्त होते हैं, डिफ़ॉल्ट रूप से लाल पाठ प्रस्तुत नहीं करते हैं। * (प्रदान किया गया नियंत्रण रेंडरिंग कॉम्पैबिलिटीवर्सन "3.5" पर सेट नहीं है) –

1

क्या आपने थीम देखी हैं?

+0

नहीं। क्या आप जानते हैं कि काम करेगा, या आपको लगता है कि यह शुरू करने के लिए एक अच्छी जगह हो सकती है? –

+0

मुझे लगता है कि यह शुरू करने के लिए एक जगह हो सकती है। लेकिन केल्टेक्स का जवाब सरल दिखता है। –

+0

धन्यवाद केन। केल्टेक्स का समाधान काम करने लगता है (कम से कम WinFP में FF3 और IE6 पर)। –

3

यदि आप थीम का उपयोग करते हैं, तो आप अपने क्लीनर की उपस्थिति को नियंत्रित करने के लिए अपनी त्वचा फ़ाइल सेट अप कर सकते हैं। Forecolor इनलाइन के साथ समस्या यह है कि जिस तरह से .NET डिफ़ॉल्ट नियंत्रण प्रस्तुत करता है, यह एक रंग = "# ..." विशेषता डालता है जो तत्व स्तर पर सीएसएस को ओवरराइड करता है। यदि केल्टेक्स का समाधान उपरोक्त आपके लिए नहीं है! महत्वपूर्ण निर्देश, आपका अगला कदम शायद सीएसएस-फ्रेंडली कंट्रोल एडाप्टर प्रोजेक्ट पर http://www.asp.net/CSSAdapters/ पर काम/अनुकूल/सहायता करने के लिए है।

बेकार प्लग: ब्रायन डीमारोज़ Google Code पर इस प्रोजेक्ट को विस्तारित करने पर काम कर रहा है।

+0

अच्छी सलाह, लेकिन गलत लिंक (जहां तक ​​मैं बता सकता है)। क्या आपका मतलब था: http://www.codeplex.com/cssfriendly? – CMPalmer

+0

धन्यवाद। संपादित किया गया, क्योंकि मैं माइक्रोसॉफ्ट ओपन-सोर्स (!) के बाद मूल संस्करण की ओर इशारा कर रहा था, लेकिन आपका भी अच्छा है। –

+0

विषयों का उपयोग काम करेगा; मैंने .NET के डिफ़ॉल्ट को ओवरराइड करने के लिए इसे कई बार किया है। (लाल अक्सर सही जवाब होता है, लेकिन हमेशा नहीं!) –

9

आप थीम्स का उपयोग कर वैधकर्ताओं की डिफ़ॉल्ट शैली को बदल सकते हैं।

  • सही दृश्य स्टूडियो में वेबसाइट पर क्लिक
  • चुनें "जोड़ें ASP.NET फ़ोल्डर"
  • "थीम" चुनें, नया फ़ोल्डर "DefaultTheme"
  • एक फ़ाइल बुलाया बनाएँ "नियंत्रण का नाम दें।

    <asp:RequiredFieldValidator runat="server" CssClass="validation-error" /> 
    <asp:RangeValidator runat="server" CssClass="validation-error" /> 
    <asp:CompareValidator runat="server" CssClass="validation-error" /> 
    <asp:RegularExpressionValidator runat="server" CssClass="validation-error" /> 
    <asp:CustomValidator runat="server" CssClass="validation-error" /> 
    <asp:ValidationSummary runat="server" CssClass="validation-error" /> 
    
    : DefaultTheme फ़ोल्डर में त्वचा "

Controls.skin फ़ाइल में निम्न जोड़ें

अपने web.config में निम्नलिखित सम्मिलित करें:

<configuration> 
    <system.web> 
     <pages theme="DefaultTheme" /> 
    </system.web> 
</configuration> 

तो फिर तुम सेट कर सकते हैं जो कुछ भी रंग आप अपने सीएसएस फ़ाइलों में .validation-error के लिए चाहते हैं।

(ध्यान दें कि 4.0 से पहले ASP.Net के संस्करणों डिफ़ॉल्ट रूप से सभी प्रमाणकों के लिए style="Color:red" लागू करने के लिए, यह मुश्किल सीएसएस में उनके रंग ओवरराइड करने के लिए बना रही है। आप पाते हैं कि आप प्रभावित कर रहा है, तो इस्तेमाल किया है, तो आप यह निर्धारित करके ओवरराइड कर सकते हैं ForeColor उपरोक्त थीम तत्वों में से प्रत्येक पर संपत्ति, या अपने सीएसएस नियम में !important जोड़ें।)

देखें:

+0

यह अब तक का सबसे अच्छा जवाब है! –

0
Set Forecolor="" 

और

CssClass="your-css-class" 
में
संबंधित मुद्दे