Was ist der Unterschied zwischen <asp:Panel >
und <asp:PlaceHolder >
in ASP.NET?
Wann sollten Sie eine über die andere verwenden?
asp.net
panel
placeholder
p.campbell
quelle
quelle
Der Platzhalter rendert keine Tags für sich selbst. Daher eignet er sich hervorragend zum Gruppieren von Inhalten ohne den Aufwand für äußere HTML-Tags.
Das Panel hat äußere HTML-Tags, aber einige coole zusätzliche Eigenschaften.
BackImageUrl: Ruft die URL des Hintergrundbilds für das Bedienfeld ab / legt diese fest
HorizontalAlign: Ruft die
horizontale Ausrichtung des Inhalts des übergeordneten Elements ab bzw. legt diese fest
Inhalt des Panels umbrochen wird
Es gibt einen guten Artikel bei startvbnet hier .
quelle
PlaceHolder-Steuerung
Verwenden Sie das PlaceHolder-Steuerelement als Container, um Serversteuerelemente zu speichern, die der Webseite dynamisch hinzugefügt werden. Das PlaceHolder-Steuerelement erzeugt keine sichtbare Ausgabe und wird nur als Container für andere Steuerelemente auf der Webseite verwendet. Mit der
Control.Controls
Auflistung können Sie ein Steuerelement im PlaceHolder-Steuerelement hinzufügen, einfügen oder entfernen.Bedienfeldsteuerung
Das Panel-Steuerelement ist ein Container für andere Steuerelemente . Dies ist besonders nützlich, wenn Sie Steuerelemente programmgesteuert generieren, eine Gruppe von Steuerelementen ausblenden / anzeigen oder eine Gruppe von Steuerelementen lokalisieren möchten.
Die
Direction
Eigenschaft ist nützlich, um den Inhalt eines Panel-Steuerelements zu lokalisieren und Text für Sprachen anzuzeigen, die von rechts nach links geschrieben sind, z. B. Arabisch oder Hebräisch.Das Panel-Steuerelement bietet verschiedene Eigenschaften, mit denen Sie das Verhalten und die Anzeige des Inhalts anpassen können. Verwenden Sie die
BackImageUr
Eigenschaft l, um ein benutzerdefiniertes Bild für das Bedienfeld anzuzeigen. Verwenden Sie dieScrollBars
Eigenschaft, um Bildlaufleisten für das Steuerelement anzugeben.Kleine Unterschiede beim Rendern von HTML: Ein PlaceHolder-Steuerelement rendert nichts, das Panel-Steuerelement jedoch als
<div>
.Weitere Informationen finden Sie in den ASP.NET-Foren
quelle
Ich habe einen seltsamen Fehler * in Visual Studio 2010, wenn Sie Steuerelemente in einen Platzhalter einfügen, werden diese nicht im Entwurfsansichtsmodus gerendert.
Dies gilt insbesondere für Hidenfields und Empty Labels.
Ich würde gerne Platzhalter anstelle von Bedienfeldern verwenden, aber ich hasse die Tatsache, dass ich zur Entwurfszeit in der GUI keine anderen Steuerelemente in Platzhalter einfügen kann.
quelle
Wie in anderen Antworten erwähnt, generiert das Panel eine
<div>
in HTML, während der PlaceHolder dies nicht tut. Aber es gibt noch viel mehr Gründe, warum Sie sich für einen entscheiden könnten.Warum ein PlaceHolder?
Da es kein eigenes Tag generiert, können Sie es sicher in einem anderen Element verwenden, das kein enthalten kann
<div>
, zum Beispiel:Sie können auch einen PlaceHolder verwenden, um die Sichtbarkeit einer Gruppe von Steuerelementen zu steuern, ohne sie in a zu verpacken
<div>
Warum ein Panel
Es generiert seine eigenen
<div>
und kann auch zum Umschließen einer Gruppe von Steuerelementen verwendet werden. Ein Panel verfügt jedoch über viel mehr Eigenschaften, die zum Formatieren des Inhalts hilfreich sein können:Das nützlichste Merkmal ist jedoch die
DefaultButton
Eigenschaft. Wenn die ID mitenter
einer Schaltfläche im Bedienfeld übereinstimmt, wird ein Formularbeitrag mit Validierung ausgelöst, wenn in einer Textbox gedrückt wird. Jetzt kann ein Benutzer das Formular senden, ohne die Taste zu drücken.Probieren Sie das obige Snippet aus, indem Sie nach
enter
innen drückenTextBox1
quelle