Quelle est la différence entre <asp:Panel >
et <asp:PlaceHolder >
dans ASP.NET?
Quand devriez-vous utiliser l'un sur l'autre?
asp.net
panel
placeholder
p.campbell
la source
la source
L'espace réservé ne restitue aucune balise pour lui-même, il est donc idéal pour regrouper du contenu sans la surcharge des balises HTML externes.
Le Panel a des balises HTML externes mais a quelques propriétés supplémentaires intéressantes.
BackImageUrl: obtient / définit l'URL de l'image d'arrière-plan pour le panneau
HorizontalAlign: obtient / définit l'
alignement horizontal du contenu du parent
contenu du panneau est enveloppé
Il y a un bon article sur startvbnet ici .
la source
Contrôle PlaceHolder
Utilisez le contrôle PlaceHolder comme conteneur pour stocker les contrôles serveur qui sont ajoutés dynamiquement à la page Web. Le contrôle PlaceHolder ne produit aucune sortie visible et est utilisé uniquement comme conteneur pour d'autres contrôles sur la page Web. Vous pouvez utiliser la
Control.Controls
collection pour ajouter, insérer ou supprimer un contrôle dans le contrôle PlaceHolder.Contrôle du panneau
Le contrôle Panel est un conteneur pour d'autres contrôles . Il est particulièrement utile lorsque vous souhaitez générer des contrôles par programme, masquer / afficher un groupe de contrôles ou localiser un groupe de contrôles.
La
Direction
propriété est utile pour localiser le contenu d'un contrôle Panel afin d'afficher le texte des langues écrites de droite à gauche, comme l'arabe ou l'hébreu.Le contrôle Panel fournit plusieurs propriétés qui vous permettent de personnaliser le comportement et l'affichage de son contenu. Utilisez la
BackImageUr
propriété l pour afficher une image personnalisée pour le contrôle Panel. Utilisez laScrollBars
propriété pour spécifier les barres de défilement du contrôle.Petites différences lors du rendu HTML: un contrôle PlaceHolder ne rendra rien, mais le contrôle Panel sera rendu sous forme de fichier
<div>
.Plus d'informations sur les forums ASP.NET
la source
J'ai un bug bizarre * dans Visual Studio 2010, si vous placez des contrôles dans un espace réservé, il ne les rend pas en mode d'affichage de conception.
Cela est particulièrement vrai pour les étiquettes Hidenfields et Empty.
J'adorerais utiliser des espaces réservés au lieu de panneaux, mais je déteste le fait que je ne peux pas mettre d'autres contrôles à l'intérieur des espaces réservés au moment de la conception dans l'interface graphique.
la source
Comme mentionné dans d'autres réponses, le Panel génère un
<div>
en HTML, contrairement à PlaceHolder. Mais il y a beaucoup plus de raisons pour lesquelles vous pouvez choisir l'une ou l'autre.Pourquoi un PlaceHolder?
Comme il ne génère aucune balise propre, vous pouvez l'utiliser en toute sécurité dans un autre élément qui ne peut pas contenir de
<div>
, par exemple:Vous pouvez également utiliser un PlaceHolder pour contrôler la visibilité d'un groupe de contrôles sans l'envelopper dans un
<div>
Pourquoi un panel
Il génère son propre
<div>
et peut également être utilisé pour envelopper un groupe de contrôles. Mais un Panel a beaucoup plus de propriétés qui peuvent être utiles pour formater son contenu:Mais la caractéristique la plus utile est la
DefaultButton
propriété. Lorsque l'ID correspond à un bouton dans le panneau, il déclenchera une publication de formulaire avec validation lorsque vousenter
appuyez sur dans une zone de texte. Désormais, un utilisateur peut soumettre le formulaire sans appuyer sur le bouton.Essayez l'extrait ci-dessus en appuyant à l'
enter
intérieurTextBox1
la source