2009-07-12 9 views
5

मैं 'त्रुटि' के एक वर्ग के साथ अपने पन्ने पर कुछ लेबल, .त्रुटि के लिए नियम है:ASP.NET नियंत्रण: छिपा हुआ, Control.Visible = true पर नहीं दिखाया जा रहा है

.error { 
    color:Red; 
    visibility:hidden  
} 

मार्कअप लेबल के लिए है:

<asp:Label ID="lblError" runat="server" CssClass="error" ></asp:Label> 

मैं तो पीछे मेरी कोड में त्रुटि लेबल के .text गुण सेट।
यदि मैं पाठ सेट करता हूं तो lblError.Visible = True का उपयोग करता हूं, तो लेबल नहीं दिखाया जाता है। कोई विचार क्यों होगा? मैं शायद यहां गलत हूं लेकिन मैंने सोचा था कि सेटिंग। दृश्यमान दृश्यता शैली को स्थापित करने की तरह था?

उत्तर

13

Visible संपत्ति पूरे तत्व की प्रतिपादन को प्रभावित करती है और सीएसएस दृश्यता विशेषता से असंबंधित है। जब झूठी, किसी भी एचटीएमएल को बिल्कुल प्रस्तुत किए जाने से रोकें।

सीएसएस विशेषता बदलने के लिए, आपको इसे मैन्युअल रूप से करने की आवश्यकता होगी। आप या तो तत्व से "त्रुटि" वर्ग को हटाकर (CssClass प्रॉपर्टी के माध्यम से) या Attributes संपत्ति के माध्यम से मैन्युअल रूप से शैली = "दृश्यता: दृश्यमान" विशेषता सेट करके इसे कर सकते हैं (क्योंकि स्टाइल विशेषता एक सीएसएस कक्षा को ओवरराइड करती है):

के रूप में लिखा पहले http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.style.aspx

:

control.Attributes["style"] = "visibility: visible"; 
3

इस पृष्ठ पर एक नज़र है, यह चीजों को स्पष्ट करना चाहिए है

दर्शनीय संपत्ति serverside है और निर्धारित करता है कि सर्वर नियंत्रण प्रदान करेगा या नहीं (अगर यह प्रस्तुत नहीं किया गया है, कोई एचटीएमएल बी होगा ई इसके लिए बनाया गया है, और यह अंतिम HTML में क्लाइंट को नहीं भेजता है)।

शैली संपत्ति तत्व की शैली विशेषता को नियंत्रित करती है। तत्व प्रस्तुत किया जाएगा लेकिन आप दृश्यता (सीएसएस) को नियंत्रित कर सकते हैं।

10

आप सीएसएस दृश्यता और नियंत्रण के सर्वर पक्ष दृश्यमान संपत्ति के बीच भ्रमित हो रहे हैं। इसे बेहतर समझने के लिए मैं आपको लेबल के साथ नमूना पृष्ठ बनाने की सलाह देता हूं, दृश्यमान संपत्ति को सत्य और गलत के बीच टॉगल करता हूं और जेनरेट किए गए HTML को देखता हूं।

आपको निम्नानुसार मिलेगा। सच के रूप में:

<div> 
    <label runat="server" visible="true">Hello</label> 
</div> 

प्रस्तुत करना होगा:

गलत पर सेट है, यह प्रस्तुत करना होगा:

<div> 

</div> 
+0

हाँ, मुझे यकीन है कि क्या अंतर था नहीं था। – Fermin

+0

यह सुपर है। रेंडर करने के लिए कम एचटीएमएल = तेज वेबसाइट। क्या मैं यह मानने में सही हूं कि मैं केवल सीएसएस दृष्टिकोण का उपयोग करूंगा यदि उदाहरण के लिए एक निश्चित बटन क्लिक करने के बाद मैं गतिशील रूप से नियंत्रण प्रकट करना चाहता हूं? पृष्ठ पर इस नियंत्रण को पाने के लिए – rory

+0

@rory yes फिर भी सर्वर पर एक पोस्टबैक आवश्यक होगा। – Sarfaraaz

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