ASP.NET में <asp:Panel >
और क्या अंतर है <asp:PlaceHolder >
?
आपको कब एक का उपयोग करना चाहिए?
ASP.NET में <asp:Panel >
और क्या अंतर है <asp:PlaceHolder >
?
आपको कब एक का उपयोग करना चाहिए?
जवाबों:
एक पैनल स्पैन (या डिव) तक फैलता है, इसके भीतर इसकी सामग्री होती है। एक प्लेसहोल्डर सिर्फ एक है, एक प्लेसहोल्डर जो आपके द्वारा इसमें रखी गई चीजों से बदल दिया जाता है।
प्लेसहोल्डर स्वयं के लिए कोई टैग प्रस्तुत नहीं करता है, इसलिए बाहरी HTML टैग के बिना सामग्री को समूहीकृत करने के लिए यह बहुत अच्छा है।
पैनल में बाहरी HTML टैग होते हैं, लेकिन कुछ शांत अतिरिक्त गुण होते हैं।
BackImageUrl: पैनल के लिए पृष्ठभूमि छवि का URL प्राप्त / सेट करता है
हॉरिज़ॉन्टल एलाइग:
माता-पिता की सामग्री का क्षैतिज संरेखण हो जाता है
सर्वर कंट्रोल को स्टोर करने के लिए एक कंटेनर के रूप में प्लेसहोल्डर नियंत्रण का उपयोग करें जो गतिशील रूप से वेब पेज पर जोड़ा जाता है। PlaceHolder नियंत्रण किसी भी दृश्यमान आउटपुट का उत्पादन नहीं करता है और इसका उपयोग केवल वेब पेज पर अन्य नियंत्रणों के लिए एक कंटेनर के रूप में किया जाता है। आप Control.Controls
प्लेसहोल्डर नियंत्रण में नियंत्रण जोड़ने, सम्मिलित करने या हटाने के लिए संग्रह का उपयोग कर सकते हैं ।
पैनल नियंत्रण अन्य नियंत्रणों के लिए एक कंटेनर है । यह विशेष रूप से तब उपयोगी होता है जब आप प्रोग्रामेटिक रूप से नियंत्रण उत्पन्न करना चाहते हैं, नियंत्रणों के समूह को छिपाना / दिखाना, या नियंत्रणों के समूह को स्थानीय बनाना।
Direction
संपत्ति भाषाओं, इस तरह के अरबी या हिब्रू के रूप में है कि सही से बाईं ओर लिखी जाती हैं के लिए प्रदर्शन पाठ करने के लिए एक पैनल नियंत्रण की सामग्री का स्थानीयकरण करने के लिए उपयोगी है।
पैनल नियंत्रण कई गुण प्रदान करता है जो आपको इसकी सामग्री के व्यवहार और प्रदर्शन को अनुकूलित करने की अनुमति देता है। BackImageUr
पैनल नियंत्रण के लिए एक कस्टम छवि प्रदर्शित करने के लिए l गुण का उपयोग करें । ScrollBars
नियंत्रण के लिए स्क्रॉल बार निर्दिष्ट करने के लिए संपत्ति का उपयोग करें ।
HTML रेंडर करते समय छोटे अंतर: एक प्लेसहोल्डर कंट्रोल कुछ भी नहीं देगा, लेकिन पैनल कंट्रोल एक के रूप में रेंडर करेगा <div>
।
ASP.NET फ़ोरम में अधिक जानकारी
मैं दृश्य स्टूडियो 2010 में अजीब बग *, यदि आप प्लेसहोल्डर के अंदर नियंत्रण रखते हैं तो यह डिज़ाइन दृश्य मोड में उन्हें प्रस्तुत नहीं करता है।
यह Hidenfields और Empty लेबल के लिए विशेष रूप से सच है।
मैं पैनलों के बजाय प्लेसहोल्डर्स का उपयोग करना पसंद करूंगा, लेकिन मुझे इस तथ्य से नफरत है कि मैंने जीयूआई में डिजाइन समय पर प्लेसहोल्डर्स के अंदर अन्य नियंत्रण नहीं रखे।
जैसा कि अन्य उत्तरों में उल्लेख किया गया है, पैनल <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