ASP.Net: लिटरल बनाम लेबल


102

मैं बस कुछ अधिकारियों को सुनना चाहता था कि कब और कहां आपको LITERALनियंत्रण का उपयोग करना चाहिए LABEL

जैसा कि मैं इसे समझता हूं, अंतर यह है: ए LABELको <SPAN>टैग के माध्यम से स्टाइल किया जा सकता है जो जोड़े जाते हैं।

मुझे व्यक्तिगत रूप <SPAN>से मेरे HTML में टैग्स का जोड़ बहुत कष्टप्रद लगता है और वास्तव में एएसपी के माध्यम से कभी भी शैलियों को लागू नहीं करता है, और इसलिए ऐसा LITERALप्रतीत होता है कि ज्यादातर समय क्या इस्तेमाल किया जाना चाहिए ... लेकिन मुझे चिंता है कि अन्य विचार या लाभ हैं उस पर एक LABEL का उपयोग करना जिससे मैं अनजान हूं।

क्या किसी भी LABELएस को बदलने के लिए 100% ठीक है LITERAL, बशर्ते हम उन्हें स्टाइल नहीं दे रहे हैं? क्या कोई अन्य विचार नहीं है?

जवाबों:


126

हां, मुख्य अंतर यह है कि Literalनियंत्रण केवल पाठ को प्रस्तुत करने को Labelनियंत्रित करता है , लेकिन <span>टैग के साथ इसे नियंत्रित करता है (जब तक कि आप AssociatedControlIDसंपत्ति का उपयोग नहीं करते हैं, उस स्थिति में एक Labelनियंत्रण एक <label>टैग को प्रस्तुत करेगा )।

इसलिए, लेबल को आसान बनाया जा सकता है, लेकिन यदि आप केवल पाठ सम्मिलित कर रहे हैं, तो शाब्दिक तरीके से जाना है। शाब्दिक नियंत्रण में एक आसान संपत्ति भी होती है Modeजो पाठ को कैसे प्रस्तुत करती है, यह नियंत्रित करती है। आपके पास यह HTML- एन्कोडेड हो सकता है, या बिना किसी बदलाव के प्रदान किया जा सकता है, या कोई "असमर्थित मार्कअप-भाषा तत्व" हटा सकता है।

आप (का उपयोग करके जैसे किसी भी शैलियाँ लागू नहीं कर रहे हैं Labelकी CssClassसंपत्ति), इसे बदलना ठीक हो जाएगा Labelके साथ नियंत्रण Literalनियंत्रित करता है।


1
तो, बस यहाँ सुनिश्चित करने के लिए, वहाँ कोई अन्य विचार कर रहे हैं? मैं पूछता हूं क्योंकि आप लिखते हैं "मुख्य अंतर है ..."। जाहिर है मुझे मुख्य अंतर में कोई दिलचस्पी नहीं है। धन्यवाद।
चक ले बट

2
@ डिंगो: क्रिस मैरिसिक का जवाब वास्तव में महत्वपूर्ण है; Labelजब आप HTML <label>तत्व चाहते हैं तो ASP.Net नियंत्रण का हमेशा उपयोग किया जाना चाहिए । इसके अलावा, लेबल के बीच पाठ प्रस्तुत <spans>करते हैं, साक्षरता नहीं है, और शाब्दिक आपको पाठ को कैसे प्रस्तुत किया जाता है, इस पर अधिक नियंत्रण देता है। नियंत्रण पर कोई विशेष घटना नहीं है, और उनकी सामग्री को कोड-पीछे बिल्कुल उसी तरीके से एक्सेस किया जा सकता है ( Textसंपत्ति के माध्यम से )।
ग्राहम क्लार्क

2
चेक बॉक्स! रेडियो के बटन! यदि आप Labelनियंत्रण का उपयोग करते हैं , तो आप AssociatedControlIDचेकबॉक्स की आईडी या रेडियो-बटन के साथ विशेषता जोड़ सकते हैं जो लेबल के साथ जुड़ा हुआ है। इस तरह आप लेबल पर क्लिक कर सकते हैं, और संबंधित नियंत्रण सक्रिय हो जाएगा। क्लिक करने योग्य लक्ष्य-क्षेत्र को बड़ा बनाने से उपयोगकर्ता-इंटरफ़ेस का उपयोग करना आसान हो जाएगा।
हैरी पेहकोनन

34

जब आपके पास कोड समान हो

<asp:Label EnableViewState="false" ID="Label8" runat="server" 
        AssociatedControlID="txtEmail">Email Address:</asp:Label>

<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>

यह एक लेबल तत्व का उपयोग करने के लिए इष्टतम है क्योंकि यह आपके टेक्स्ट बॉक्स को लक्षित labelकरने वाले सही forगुण के साथ इसे सही रूप से एक html तत्व में बदल देगा , ताकि यदि कोई उपयोगकर्ता लेबल पर क्लिक करता है तो यह स्वचालित रूप से पाठ क्षेत्र के अंदर उनके कर्सर को सेट करता है।

अन्यथा पाठ शाब्दिक का उपयोग करें जब तक कि पाठ में लिपटे spanसीएसएस स्टाइल के लिए फायदेमंद नहीं होगा।


19

यहां छवि विवरण दर्ज करें

सरल पाठ, स्वरूपित पाठ या HTML पाठ प्रदर्शित करने के लिए, जैसा कि यह है कि मैं पहले इसके हल्के के रूप में शाब्दिक रूप से शुरू करूंगा और अतिरिक्त एसपीएएन टैग से बाहर नहीं निकलूंगा।

इस वीडियो को देखें जो उन अतिरिक्त टैग के बारे में दर्शाता है।

लेकिन हम CSS को शाब्दिक रूप से लागू नहीं कर सकते हैं, हम Label1.Attributes.Add की तरह विशेषताओं को नहीं जोड़ सकते हैं। किसी भी कंटेनर उन्मुख चीजों को प्राप्त नहीं किया जा सकता है क्योंकि शाब्दिक एक स्पैन टैग से घिरा नहीं है।

यह बहुत दुख की बात है। ASP.NET वेबफॉर्म के बहुत से लोग डिफ़ॉल्ट रूप से लेबल का चयन करके पाठ को प्रदर्शित नहीं करते हैं यह जानने के लिए कि यह अतिरिक्त स्पैन टैग उत्पन्न करता है जो आपके HTML को बहुत भारी बना सकता है यदि आपके पास बहुत सारे लेबल हैं।


3

Asp.net में अंतर b / w लेबल और शाब्दिक नियंत्रण

लगभग सभी मायनों में एक सांप्रदायिक नियंत्रण एक लेबल नियंत्रण के समान है। इन दोनों नियंत्रणों का उपयोग वेबफॉर्म पर टेक्स्ट प्रदर्शित करने के लिए किया जाता है। (पाठ संपत्ति HTML में या कोड-पीछे में सेट की जा सकती है।)

सबसे बड़ा अंतर यह है कि लेबल नियंत्रण पाठ को एक spanबार में लपेटता है । लेबल नियंत्रण पर लागू होने वाली कोई भी शैली, की styleसंपत्ति का उपयोग करके प्रदान की जाएगी span

उदाहरण के लिए, निम्न HTML

<asp:Label ID="Label1" runat="server"  Text="Label Text"
ForeColor="Red" Font-Bold="true" ></asp:Label>

के रूप में प्रस्तुत किया जाएगा

<span id="Label1" style="color:Red;font-weight:bold;">Label Text</span>

एक शाब्दिक नियंत्रण किसी भी आसपास के टैग का उत्पादन नहीं करता है, इसलिए पाठ इस प्रकार प्रदर्शित होता है:

उदाहरण के लिए, निम्न HTML

<asp:Literal ID="Literal1" runat="server" 
Text="Literal Control Text"></asp:Literal>

के रूप में प्रस्तुत किया जाएगा

Literal Control Text

इसलिए यदि आप किसी भी शैली का उपयोग लेबल नियंत्रण की तुलना में करना चाहते हैं, अन्यथा शाब्दिक नियंत्रण का उपयोग करें। इसके कारण, लेबल नियंत्रण के साथ तुलना करने पर, शाब्दिक नियंत्रण एक हल्का वजन नियंत्रण है।

FYI करें: लिटरल कंट्रोल क्लास के लिए वंशानुक्रम पदानुक्रम है (ऑब्जेक्ट => कंट्रोल => लिटरल) , जहां लेबल नियंत्रण के लिए, पदानुक्रम है (ऑब्जेक्ट => कंट्रोल => वेबकंट्रोल => लेबल)


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.