Utilisation de Panel ou PlaceHolder

Quelle est la différence entre et dans ASP.NET?

Quand devriez-vous utiliser l’un sur l’autre?

Un panneau se développe en une étendue (ou une div), avec son contenu. Un espace réservé est juste cela, un espace réservé qui est remplacé par ce que vous y mettez.

Le Placeholder ne rend pas de balises 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 possède des 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 le
    alignement horizontal du contenu du parent

  • Wrap: Obtient / Définit si le
    les enveloppes de contenu du panneau

Il y a un bon article sur startvbnet ici .

Contrôle PlaceHolder

Utilisez le contrôle PlaceHolder en tant que conteneur pour stocker les contrôles serveur ajoutés dynamicment à la page Web. Le contrôle PlaceHolder ne produit aucune sortie visible et sert uniquement de conteneur pour d’autres contrôles de la page Web. Vous pouvez utiliser la collection Control.Controls pour append, 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 propriété Direction est utile pour localiser le contenu d’un contrôle Panel afin d’afficher du texte pour les langues écrites de droite à gauche, telles que 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 propriété BackImageUr l pour afficher une image personnalisée pour le contrôle Panel. Utilisez la propriété ScrollBars pour spécifier des barres de défilement pour le contrôle.

Petites différences lors du rendu HTML: un contrôle PlaceHolder ne rendra rien, mais le contrôle Panel sera rendu sous la forme d’un

.

Plus d’informations sur les forums ASP.NET

J’ai un bug bizarre * dans visual studio 2010, si vous placez des contrôles dans un espace réservé, ils ne sont pas affichés en mode vue.

Cela est particulièrement vrai pour les labels Hidenfields et Empty.

J’adorerais utiliser des espaces réservés au lieu de panneaux, mais je déteste le fait que je ne puisse pas placer d’autres contrôles à l’intérieur des espaces réservés à la conception dans l’interface graphique.

Comme mentionné dans d’autres réponses, le Panel génère un

en HTML, contrairement au 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 aucun tag, vous pouvez l’utiliser en toute sécurité dans un autre élément ne pouvant contenir un

, par exemple:

 
Row 1

Vous pouvez également utiliser un PlaceHolder pour contrôler la visibilité d’un groupe de contrôles sans l’envelopper dans un

   

Pourquoi un panel

Il génère son propre

et peut également être utilisé pour envelopper un groupe de commandes. Mais un Panel a beaucoup plus de propriétés qui peuvent être utiles pour formater son contenu:

  Red text on a green background with a black dotted border.  

Mais la fonctionnalité la plus utile est la propriété DefaultButton . Lorsque l’ID correspond à un bouton du panneau, il déclenche une publication de formulaire avec validation lorsque vous enter sur enter dans une zone de texte. Un utilisateur peut maintenant soumettre le formulaire sans appuyer sur le bouton.

   

Essayez l’extrait ci-dessus en appuyant sur enter dans TextBox1