2010-07-18 9 views
17

LiteralControl क्या है? मैं लिटलकंटोल के बारे में पढ़ रहा था लेकिन मुझे यकीन नहीं है कि उनका उपयोग क्यों किया जाता है। मैंने इस कोड का उपयोग किसी पृष्ठ में नियंत्रणों को सूचीबद्ध करने के लिए किया था और - मेरे पास एक पृष्ठ है जिसमें एक लेबल और बटन है। जब मैं इसLiteralControl क्या है? इसका उपयोग क्यों किया जाता है?

foreach (Control control in Page.Controls) 
{ 
    Response.Write(control.GetType().ToString() + " - <b> " + control.ID + "</b><br />");  

    if (control is LiteralControl) 
    { 
     Response.Write("Textt :" + ((LiteralControl)control).Text.ToString() + " - " + 
      Server.HtmlEncode(((LiteralControl)control).Text + "<br />")); 
    } 
} 

का उपयोग मैं वहाँ वास्तव में हैं कि LiteralControls कि उत्पन्न और पहले और मैं अपने पृष्ठ में शामिल किया है हर नियंत्रण के बाद सूचीबद्ध हैं पाते हैं। शाब्दिक नियंत्रण में केवल टेक्स्ट प्रॉपर्टी होती है।

मुझे अभी भी यकीन नहीं है कि क्यों LiteralControls आवश्यक है और उपयोग किया जाता है? LiteralControls क्यों उपयोग किए जाते हैं? मेरे पृष्ठ में जो नियंत्रण मैं जोड़ता हूं, उसके पहले और बाद में एक लिटरल कंट्रोल क्यों रखा जाता है? और उनके पास केवल टेक्स्ट प्रॉपर्टी क्यों है?

+0

सटीक होना, वे भी स्वीकार * आईडी * और * runat = "सर्वर" *। –

उत्तर

12

MSDN से शाब्दिक नियंत्रण HTML तत्वों, टेक्स्ट और किसी अन्य स्ट्रिंग को ASP.NET पृष्ठ में दर्शाता है जिसे सर्वर पर प्रोसेसिंग की आवश्यकता नहीं होती है।

इसके अलावा के लिए Literal Control usage

एक label एक <span> टैग renders इस पर एक नजर है। यह आपको कुछ पाठों की डिस्प्ले विशेषताओं को प्रोग्रामेटिक रूप से बदलने की अनुमति देता है जिन्हें आप प्रदर्शित करना चाहते हैं। LiteralControl बिल्कुल वही स्थिर HTML प्रस्तुत करता है जिसे आप चाहते हैं। दूसरे पर एक का उपयोग करने का कोई सामान्य लाभ नहीं है। कुछ परिस्थितियों में की तुलना में अधिक उपयोगी हो सकता है। उदाहरण के लिए, यदि आप स्थिर पाठ, प्रदर्शित करना चाहते हैं और इसमें कोई प्रोग्रामेटिक परिवर्तन नहीं करना चाहते हैं, तो आप LiteralControl का उपयोग करना चाहेंगे।

+7

builderau.com.au लिंक मृत। – JerryOL

3

आप किसी भी HTML मार्कअप है कि एक ASP.NET सर्वर नियंत्रण का हिस्सा नहीं है के लिए एक LiteralControl मिल जाएगा। यह सिर्फ फ्रेमवर्क आपके पृष्ठ के HTML झुंड को प्रस्तुत करता है। Text संपत्ति सिर्फ यह HTML है, जिसमें किसी भी व्हाइटस्पेस भी शामिल है।

12

LiteralControl का उपयोग रनटाइम पर आपके पृष्ठ में HTML को इंजेक्ट करने के लिए किया जाता है।

5

बहुत सारे प्रोग्रामर जो अर्थपूर्ण मार्कअप (विशेष रूप से मुख्य रूप से विंडोज़ फॉर्म पृष्ठभूमि वाले) के मूल्य को नहीं समझते हैं, एक पृष्ठ पर प्रोग्रामेटिक रूप से जेनरेट किए गए टेक्स्ट के लिए प्लेसहोल्डर के रूप में लेबल नियंत्रण या HTML LABEL टैग का उपयोग करेंगे। इसका नुकसान यह है कि लेबल में HTML दस्तावेज़ में अर्थपूर्ण अर्थ है।

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

इसके अतिरिक्त, यदि आप किसी भी पाठ को किसी लेबल को टैग नहीं करते हैं, तो यह आपके एचटीएमएल में टैग को आउटपुट करेगा, जैसे: <label></label>, जबकि कोई पाठ वाला कोई भी साहित्य कुछ भी आउटपुट नहीं करेगा - अधिक क्लीनर।

0

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

+1

क्या आप 'लिटल 'और' लिटल कंट्रोल 'के अंतर को जानते हैं? क्योंकि सवाल 'लिटल कंट्रोल 'के बारे में है। –

0

इस प्रयास करें:

foreach (Control control in Page.Controls) 
{ 
    Response.Write(control.GetType().ToString() + " - <b> " + control.ID + "</b><br />");  

    if (control is LiteralControl) 
    { 
     Response.Write("Textt :" + ((LiteralControl)control).Text.ToString() + " - " + 
     Server.HtmlEncode(((LiteralControl)control).Text + "<br />")); 
    } 
} 
0
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { } 
    protected void btnGenerateControl_Click(object sender, EventArgs e) 
    { 
    // Retrieve the count of the controls to generate 
    int Count = Convert.ToInt16(txtControlsCount.Text); 
    // Loop thru each list item in the CheckBoxList 
    foreach (ListItem li in chkBoxListControlType.Items) 
    { 
     if (li.Selected) 
     { 
      // Generate Lable Controls 
      if (li.Value == "Label") 
      { 
       for (int i = 1; i <= Count; i++) 
       { 
        Label lbl = new Label(); 
        lbl.Text = "Label - " + i.ToString() + "<br>"; 
        //phLabels.Controls.Add(lbl); 
        //tdLabels.Controls.Add(lbl); 
        pnlLabels.Controls.Add(lbl); 
       } 
      } 
      // Generate TextBox controls 
      else if (li.Value == "TextBox") 
      { 
       for (int i = 1; i <= Count; i++) 
       { 
        TextBox txtBox = new TextBox(); 
        txtBox.Text = "TextBox - " + i.ToString() ;     
        //phTextBoxes.Controls.Add(txtBox); 
        //tdTextBoxes.Controls.Add(txtBox); 

        pnlTextBoxes.Controls.Add(txtBox); 
        pnlTextBoxes.Controls.Add(new LiteralControl("<br />")); 
        //pnlTextBoxes     
       } 
      } 
      // Generate Button Controls 
      else 
      { 
       for (int i = 1; i <= Count; i++) 
       { 
        Button btn = new Button(); 
        btn.Text = "Button - " + i.ToString(); 
        //phButtons.Controls.Add(btn); 
        //tdButtons.Controls.Add(btn); 

        pnlButtons.Controls.Add(btn); 
        pnlButtons.Controls.Add(new LiteralControl("<br />")); 
       } 
      } 
     } 
    } 
    } 
} 
+0

कृपया बिना किसी स्पष्टीकरण के कोड का एक गुच्छा पोस्ट न करें कि यह उपयोगकर्ताओं के प्रश्न का उत्तर देने में कैसे मदद करता है। (आप स्पष्टीकरण जोड़ने के लिए अपनी पोस्ट संपादित कर सकते हैं।) – Loren