ASP.NET'te <asp:Panel >
ve <asp:PlaceHolder >
ASP.NET arasındaki fark nedir ?
Birini diğeri ne zaman kullanmalısınız?
ASP.NET'te <asp:Panel >
ve <asp:PlaceHolder >
ASP.NET arasındaki fark nedir ?
Birini diğeri ne zaman kullanmalısınız?
Yanıtlar:
Panel, içinde içerik bulunan bir yayılma alanına (veya div) genişler. Yer tutucu tam da budur, yerine koyduğunuz her şeyin yerini alan bir yer tutucudur.
Yer Tutucu kendisi için herhangi bir etiket oluşturmaz, bu nedenle dış HTML etiketlerinin ek yükü olmadan içeriği gruplandırmak için mükemmeldir.
Panel dış HTML etiketlerine sahiptir, ancak bazı harika ekstra özelliklere sahiptir.
BackImageUrl: Panel için arka plan resminin URL'sini alır / ayarlar
HorizontalAlign:
Üst içeriğin yatay hizalamasını alır / ayarlar
Burada startvbnet'te iyi bir makale var .
Web sayfasına dinamik olarak eklenen sunucu denetimlerini depolamak için PlaceHolder denetimini kapsayıcı olarak kullanın. PlaceHolder denetimi görünür bir çıktı oluşturmaz ve yalnızca Web sayfasındaki diğer denetimler için bir kap olarak kullanılır. Sen kullanabilirsiniz Control.Controls
eklemek eklemek veya yer tutucu kontrolünde bir denetimi kaldırmak için koleksiyon.
Panel kontrolü diğer denetimler için bir kapsayıcıdır . Kontrolleri programlı olarak oluşturmak, bir kontrol grubunu gizlemek / göstermek veya bir kontrol grubunu yerelleştirmek istediğinizde özellikle yararlıdır.
Bu Direction
özellik, bir Panel denetiminin içeriğini sağdan sola yazılan diller için Arapça veya İbranice gibi metin görüntülemek üzere yerelleştirmek için kullanışlıdır.
Panel kontrolü, içeriğinin davranışını ve görüntüsünü özelleştirmenizi sağlayan çeşitli özellikler sunar. BackImageUr
Panel denetimi için özel bir görüntü görüntülemek için l özelliğini kullanın . ScrollBars
Denetim için kaydırma çubuklarını belirtmek için özelliği kullanın .
HTML oluştururken küçük farklılıklar: Bir PlaceHolder denetimi hiçbir şey oluşturmaz, ancak Panel denetimi bir olarak oluşturulur <div>
.
ASP.NET Forumları hakkında daha fazla bilgi
Visual Studio 2010'da garip bir hata * var, kontrolleri bir Yer Tutucunun içine koyarsanız, bunları tasarım görünümü modunda oluşturmaz.
Bu özellikle Hidenfields ve Empty etiketleri için geçerlidir.
Paneller yerine yer tutucuları kullanmak isterdim, ancak GUI'deki tasarım zamanında yer tutucuların içine başka kontroller koyamayacağımdan nefret ediyorum.
Diğer yanıtlarda belirtildiği gibi, Panel <div>
HTML'de a oluşturur , ancak PlaceHolder bunu yapmaz. Ancak ikisini de seçebilmenizin çok daha fazla nedeni var.
Neden bir PlaceHolder?
Kendine ait bir etiket oluşturmadığından, etiketi a içermeyen diğer öğelerin içinde güvenle kullanabilirsiniz <div>
, örneğin:
<table>
<tr>
<td>Row 1</td>
</tr>
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</table>
Ayrıca, bir Kontrol grubunun Görünürlüğünü bir <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>
Neden Panel
Kendi üretiyor <div>
ve bir grup Contols'u sarmak için de kullanılabilir. Ancak bir Panel, içeriğini biçimlendirmek için yararlı olabilecek çok daha fazla özelliğe sahiptir:
<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>
Ancak en kullanışlı özellik DefaultButton
mülkiyettir. Kimlik, Paneldeki bir Düğme ile eşleştiğinde enter
, bir TextBox içinde basıldığında Onaylı bir Form Postasını tetikler . Artık bir kullanıcı, Düğmeye basmadan Formu gönderebilir.
<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
İçeriye basarak yukarıdaki kod parçasını deneyinTextBox1