¿Cuál es la diferencia entre <asp:Panel >
y <asp:PlaceHolder >
en ASP.NET?
¿Cuándo deberías usar uno sobre el otro?
asp.net
panel
placeholder
p.campbell
fuente
fuente
El marcador de posición no representa ninguna etiqueta por sí mismo, por lo que es ideal para agrupar contenido sin la sobrecarga de las etiquetas HTML externas.
El Panel tiene etiquetas HTML externas pero tiene algunas propiedades adicionales geniales.
BackImageUrl: Obtiene / Establece la URL de la imagen de fondo para el panel
HorizontalAlign: Obtiene / Establece la
alineación horizontal del contenido del padre
contenido del panel se ajusta
Hay un buen artículo en startvbnet aquí .
fuente
Control PlaceHolder
Use el control PlaceHolder como contenedor para almacenar los controles del servidor que se agregan dinámicamente a la página web. El control PlaceHolder no produce ningún resultado visible y se usa solo como contenedor para otros controles en la página web. Puede usar la
Control.Controls
colección para agregar, insertar o eliminar un control en el control PlaceHolder.Panel de control
El control del Panel es un contenedor para otros controles . Es especialmente útil cuando desea generar controles mediante programación, ocultar / mostrar un grupo de controles o localizar un grupo de controles.
La
Direction
propiedad es útil para localizar el contenido de un control del Panel para mostrar texto para los idiomas que se escriben de derecha a izquierda, como el árabe o el hebreo.El control Panel proporciona varias propiedades que le permiten personalizar el comportamiento y la visualización de su contenido. Use la
BackImageUr
propiedad l para mostrar una imagen personalizada para el control del Panel. Use laScrollBars
propiedad para especificar barras de desplazamiento para el control.Pequeñas diferencias al representar HTML: un control PlaceHolder no representará nada, pero el control Panel se representará como a
<div>
.Más información en los foros de ASP.NET
fuente
Extraño error * en Visual Studio 2010, si coloca controles dentro de un marcador de posición, no los representa en modo de vista de diseño.
Esto es especialmente cierto para las etiquetas Hidenfields y Empty.
Me encantaría usar marcadores de posición en lugar de paneles, pero odio el hecho de que no puedo poner otros controles dentro de los marcadores de posición en tiempo de diseño en la GUI.
fuente
Como se mencionó en otras respuestas, el Panel genera un
<div>
HTML, mientras que el PlaceHolder no. Pero hay muchas más razones por las que podrías elegir cualquiera de las dos.¿Por qué un PlaceHolder?
Como no genera ninguna etiqueta propia, puede usarla de manera segura dentro de otro elemento que no pueda contener un
<div>
, por ejemplo:También puede usar un PlaceHolder para controlar la Visibilidad de un grupo de Controles sin envolverlo en un
<div>
Por qué un panel
Genera su propio
<div>
y también se puede utilizar para envolver un grupo de Contols. Pero un Panel tiene muchas más propiedades que pueden ser útiles para formatear su contenido:Pero la característica más útil es la
DefaultButton
propiedad. Cuando la ID coincide con un botón en el panel, activará una publicación de formulario con validación cuandoenter
se presione dentro de un cuadro de texto. Ahora un usuario puede enviar el formulario sin presionar el botón.Pruebe el fragmento anterior presionando
enter
dentroTextBox1
fuente