पैनल या प्लेसहोल्डर का उपयोग करना


152

ASP.NET में <asp:Panel >और क्या अंतर है <asp:PlaceHolder >?

आपको कब एक का उपयोग करना चाहिए?

जवाबों:


161

एक पैनल स्पैन (या डिव) तक फैलता है, इसके भीतर इसकी सामग्री होती है। एक प्लेसहोल्डर सिर्फ एक है, एक प्लेसहोल्डर जो आपके द्वारा इसमें रखी गई चीजों से बदल दिया जाता है।


19
एक पैनल
mbillard

4
यह एक स्पैन भी बन सकता है, ASP.Net के संस्करण पर निर्भर करता है और जो ब्राउज़र इसे प्रदान कर रहा है।
स्टीवन रॉबिंस

9
मेह, मुझे ब्राउज़रकैप्स के साथ शुरू नहीं करना चाहिए - यह "डाउनलीवल" ब्राउज़रों पर .net 1.1 में एक एकल सेल टेबल भी बन सकता है।
ज़ाफ - बेन ड्यूगिड

6
हेह, मैंने अपने दिमाग से डाउनलेवल टेबल को बाहर निकालने की कोशिश की .. धन्यवाद कि वापस लाने के लिए धन्यवाद :-)
स्टीवन रॉबिंस

1
@Protectorone: उपरोक्त टिप्पणियां पैनल के बारे में हैं, न कि प्लेसहोल्डर।
ब्रायन

63

प्लेसहोल्डर स्वयं के लिए कोई टैग प्रस्तुत नहीं करता है, इसलिए बाहरी HTML टैग के बिना सामग्री को समूहीकृत करने के लिए यह बहुत अच्छा है।

पैनल में बाहरी HTML टैग होते हैं, लेकिन कुछ शांत अतिरिक्त गुण होते हैं।

  • BackImageUrl: पैनल के लिए पृष्ठभूमि छवि का URL प्राप्त / सेट करता है

  • हॉरिज़ॉन्टल एलाइग:
    माता-पिता की सामग्री का क्षैतिज संरेखण हो जाता है

  • लपेटें: हो जाता है / सेट करता है कि
    पैनल की सामग्री लपेटती है या नहीं

यहाँ startvbnet पर एक अच्छा लेख है


15
एस्प के लिए एक और बढ़िया सुविधा: पैनल यह है कि इसमें एक डिफॉल्टबटन गुण है, जो यह बताता है कि यदि उपयोगकर्ता अपने कीबोर्ड पर प्रवेश करता है तो कौन सा बटन क्लिक करना है। यदि आपके पास एक ही पृष्ठ पर कई पैनल और बटन हैं, तो दर्ज बटन के साथ काम करने की आवश्यकता है।
एलेक्स


2009 में, जब WebForms ASP.NET dev करने का वास्तविक तथ्य था। तब हाँ दिसंबर 2012 में, लगभग 4 साल बाद शायद नहीं। अजीब टिप्पणी
रे Booysen

1
startvbnet लिंक मृत है।
mmcglynn

1
ऊपर मेरी टिप्पणियों के रूप में भी - बहुत मूल्यवान विस्तार की आपूर्ति के लिए धन्यवाद। यह स्पष्ट करने में मदद मिली कि क्यों मैं एक DNN मॉड्यूल के उन्नयन के लिए अन्य समाधानों के बजाय कोड में उपयोग किया जा रहा था।
user1585204

36

प्लेसहोल्डर नियंत्रण

सर्वर कंट्रोल को स्टोर करने के लिए एक कंटेनर के रूप में प्लेसहोल्डर नियंत्रण का उपयोग करें जो गतिशील रूप से वेब पेज पर जोड़ा जाता है। PlaceHolder नियंत्रण किसी भी दृश्यमान आउटपुट का उत्पादन नहीं करता है और इसका उपयोग केवल वेब पेज पर अन्य नियंत्रणों के लिए एक कंटेनर के रूप में किया जाता है। आप Control.Controlsप्लेसहोल्डर नियंत्रण में नियंत्रण जोड़ने, सम्मिलित करने या हटाने के लिए संग्रह का उपयोग कर सकते हैं ।

पैनल नियंत्रण

पैनल नियंत्रण अन्य नियंत्रणों के लिए एक कंटेनर है । यह विशेष रूप से तब उपयोगी होता है जब आप प्रोग्रामेटिक रूप से नियंत्रण उत्पन्न करना चाहते हैं, नियंत्रणों के समूह को छिपाना / दिखाना, या नियंत्रणों के समूह को स्थानीय बनाना।

Directionसंपत्ति भाषाओं, इस तरह के अरबी या हिब्रू के रूप में है कि सही से बाईं ओर लिखी जाती हैं के लिए प्रदर्शन पाठ करने के लिए एक पैनल नियंत्रण की सामग्री का स्थानीयकरण करने के लिए उपयोगी है।

पैनल नियंत्रण कई गुण प्रदान करता है जो आपको इसकी सामग्री के व्यवहार और प्रदर्शन को अनुकूलित करने की अनुमति देता है। BackImageUrपैनल नियंत्रण के लिए एक कस्टम छवि प्रदर्शित करने के लिए l गुण का उपयोग करें । ScrollBarsनियंत्रण के लिए स्क्रॉल बार निर्दिष्ट करने के लिए संपत्ति का उपयोग करें ।

HTML रेंडर करते समय छोटे अंतर: एक प्लेसहोल्डर कंट्रोल कुछ भी नहीं देगा, लेकिन पैनल कंट्रोल एक के रूप में रेंडर करेगा <div>

ASP.NET फ़ोरम में अधिक जानकारी


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

5

मैं दृश्य स्टूडियो 2010 में अजीब बग *, यदि आप प्लेसहोल्डर के अंदर नियंत्रण रखते हैं तो यह डिज़ाइन दृश्य मोड में उन्हें प्रस्तुत नहीं करता है।

यह Hidenfields और Empty लेबल के लिए विशेष रूप से सच है।

मैं पैनलों के बजाय प्लेसहोल्डर्स का उपयोग करना पसंद करूंगा, लेकिन मुझे इस तथ्य से नफरत है कि मैंने जीयूआई में डिजाइन समय पर प्लेसहोल्डर्स के अंदर अन्य नियंत्रण नहीं रखे।


5
लोग अभी भी डिज़ाइन दृश्य मोड का उपयोग करते हैं? ;)
मैथ्यू लॉक

2
हाहा - मैंने इसे सालों पहले इस्तेमाल करना छोड़ दिया था, लेकिन अभी भी बग को ठीक नहीं किया है
जॉर्ज फिलिप्पाकोस

फिर भी इसके ठीक होने का इंतज़ार!
निक्की पंजाबी

1

जैसा कि अन्य उत्तरों में उल्लेख किया गया है, पैनल <div>HTML में एक उत्पन्न करता है , जबकि प्लेसहोल्डर नहीं करता है। लेकिन बहुत सारे कारण हैं कि आप किसी एक को क्यों चुन सकते हैं।

एक PlaceHolder क्यों?

चूंकि यह इसका कोई टैग नहीं बनाता है, इसलिए आप इसे अन्य तत्व के अंदर सुरक्षित रूप से उपयोग कर सकते हैं <div>, जिनमें कोई उदाहरण नहीं हो सकता है :

<table>
    <tr>
        <td>Row 1</td>
    </tr>
    <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</table>

आप प्लेसहोल्डर का उपयोग नियंत्रण के एक समूह की दृश्यता को नियंत्रित करने के लिए भी कर सकते हैं, इसे लपेटे बिना <div>

<asp:PlaceHolder ID="PlaceHolder1" runat="server" Visible="false">
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    <br />
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:PlaceHolder>

एक पैनल क्यों

यह अपने आप उत्पन्न होता है <div>और इसका उपयोग कंटोल के एक समूह को लपेटने के लिए भी किया जा सकता है। लेकिन एक पैनल में बहुत अधिक गुण हैं जो सामग्री को प्रारूपित करने के लिए उपयोगी हो सकते हैं:

<asp:Panel ID="Panel1" runat="server" Font-Bold="true"
    BackColor="Green" ForeColor="Red" Width="200"
    Height="200" BorderColor="Black" BorderStyle="Dotted">
    Red text on a green background with a black dotted border.
</asp:Panel>

लेकिन सबसे उपयोगी विशेषता DefaultButtonसंपत्ति है। जब आईडी पैनल के एक बटन से मेल खाती है तो enterयह टेक्स्टबॉक्स के अंदर दबाए जाने पर मान्यता के साथ एक फॉर्म पोस्ट को ट्रिगर करेगा । अब एक उपयोगकर्ता बटन दबाए बिना फॉर्म जमा कर सकता है।

<asp:Panel ID="Panel1" runat="server" DefaultButton="Button1">
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <br />
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
        ErrorMessage="Input is required" ValidationGroup="myValGroup"
        Display="Dynamic" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
    <br />
    <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="myValGroup" />
</asp:Panel>

उपरोक्त स्निपेट को enterअंदर दबाकर देखेंTextBox1

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