Jaka jest różnica między <asp:Panel >
i <asp:PlaceHolder >
w ASP.NET?
Kiedy należy używać jednego nad drugim?
asp.net
panel
placeholder
p.campbell
źródło
źródło
Element zastępczy nie renderuje żadnych tagów dla siebie, więc świetnie nadaje się do grupowania treści bez narzutu zewnętrznych znaczników HTML.
Panel ma zewnętrzne tagi HTML, ale ma kilka fajnych dodatkowych właściwości.
BackImageUrl: Pobiera / ustawia adres URL obrazu tła dla panelu
HorizontalAlign: Pobiera / ustawia
wyrównanie w poziomie zawartości elementu nadrzędnego
panelu jest zawijana
Jest dobry artykuł na startvbnet tutaj .
źródło
Kontrolka PlaceHolder
Użyj kontrolki PlaceHolder jako kontenera do przechowywania formantów serwera, które są dynamicznie dodawane do strony sieci Web. Formant PlaceHolder nie generuje żadnych widocznych danych wyjściowych i jest używany tylko jako kontener dla innych formantów na stronie sieci Web. Możesz użyć
Control.Controls
kolekcji, aby dodać, wstawić lub usunąć kontrolkę w kontrolce PlaceHolder.Panel sterowania
Kontrolka panelu jest kontenerem dla innych kontrolek . Jest to szczególnie przydatne, gdy chcesz programowo generować formanty, ukryć / pokazać grupę kontrolek lub zlokalizować grupę kontrolek.
Direction
Właściwość jest przydatna do lokalizowania zawartości kontrolki na panelu do wyświetlania tekstu w językach, które są pisane od prawej do lewej, takich jak arabski lub hebrajski.Formant Panel zapewnia kilka właściwości, które umożliwiają dostosowanie zachowania i wyświetlania jego zawartości. Użyj
BackImageUr
właściwości l, aby wyświetlić niestandardowy obraz dla kontrolki Panel. UżyjScrollBars
właściwości, aby określić paski przewijania dla kontrolki.Małe różnice podczas renderowania HTML: kontrolka PlaceHolder nie będzie renderować niczego, ale kontrolka Panel będzie renderować jako plik
<div>
.Więcej informacji na forach ASP.NET
źródło
Mam dziwny błąd * w Visual Studio 2010, jeśli umieścisz kontrolki wewnątrz obiektu zastępczego, nie wyrenderuje ich w trybie widoku projektu.
Dotyczy to zwłaszcza etykiet Hidenfields i Empty.
Chciałbym używać symboli zastępczych zamiast paneli, ale nienawidzę faktu, że nie mogę umieszczać innych elementów sterujących w elementach zastępczych w czasie projektowania w interfejsie GUI.
źródło
Jak wspomniano w innych odpowiedziach, Panel generuje
<div>
w HTML, podczas gdy PlaceHolder nie. Ale jest o wiele więcej powodów, dla których możesz wybrać jeden z nich.Dlaczego PlaceHolder?
Ponieważ nie generuje własnego tagu, możesz go bezpiecznie używać wewnątrz innego elementu, który nie może zawierać znaku
<div>
, na przykład:Możesz również użyć elementu PlaceHolder, aby kontrolować widoczność grupy formantów bez zawijania go w plik
<div>
Dlaczego panel
Generuje własne
<div>
i może być również używany do pakowania grupy Contoli. Ale panel ma znacznie więcej właściwości, które mogą być przydatne do formatowania jego zawartości:Ale najbardziej użyteczną funkcją jest
DefaultButton
właściwość. Gdy identyfikator pasuje do przycisku w panelu, poenter
naciśnięciu przycisku wewnątrz pola tekstowego zostanie wywołany formularz z potwierdzeniem. Teraz użytkownik może przesłać formularz bez naciskania przycisku.Wypróbuj powyższy fragment, naciskając
enter
wewnątrzTextBox1
źródło