vpnfilter routers link infectados extender eliminar como asp.net panel placeholder

asp.net - routers - virus router tp-link



Usando Panel o PlaceHolder (5)

¿Cuál es la diferencia entre <asp:Panel > y <asp:PlaceHolder > en ASP.NET?

¿Cuándo deberías usar uno sobre el otro?


Control PlaceHolder

Utilice el control PlaceHolder como un contenedor para almacenar controles de 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 un contenedor para otros controles en la página web. Puede usar la colección Control.Controls 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 propiedad Direction es útil para localizar el contenido de un control de panel para mostrar texto para idiomas escritos 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 sus contenidos. Use la propiedad BackImageUr l para mostrar una imagen personalizada para el control del Panel. Use la propiedad ScrollBars para especificar barras de desplazamiento para el control.

Pequeñas diferencias al renderizar HTML: un control PlaceHolder no arrojará nada, pero el control del Panel se representará como <div> .

Más información en los foros de ASP.NET


Como se menciona en otras respuestas, el Panel genera un <div> en HTML, mientras que el PlaceHolder no lo hace. Pero hay muchas más razones por las que puedes elegir cualquiera.

¿Por qué un PlaceHolder?

Como no genera ninguna etiqueta propia, puede usarla de forma segura dentro de otro elemento que no puede contener un <div> , por ejemplo:

<table> <tr> <td>Row 1</td> </tr> <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> </table>

También puede usar un PlaceHolder para controlar la Visibilidad de un grupo de Controles sin envolverlo en un <div>

<asp:PlaceHolder ID="PlaceHolder1" runat="server" Visible="false"> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </asp:PlaceHolder>

Por qué un Panel

Genera su propio <div> y también se puede usar para envolver un grupo de Contols. Pero un Panel tiene muchas más propiedades que pueden ser útiles para formatear su contenido:

<asp:Panel ID="Panel1" runat="server" Font-Bold="true" BackColor="Green" ForeColor="Red" Width="200" Height="200" BorderColor="Black" BorderStyle="Dotted"> Red text on a green background with a black dotted border. </asp:Panel>

Pero la característica más útil es la propiedad DefaultButton . Cuando la ID coincida con un Botón en el Panel, se activará una Publicación de Formulario con Validación cuando se presione enter dentro de un TextBox. Ahora un usuario puede enviar el formulario sin presionar el botón.

<asp:Panel ID="Panel1" runat="server" DefaultButton="Button1"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Input is required" ValidationGroup="myValGroup" Display="Dynamic" ControlToValidate="TextBox1"></asp:RequiredFieldValidator> <br /> <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="myValGroup" /> </asp:Panel>

Pruebe el fragmento de arriba presionando enter dentro de TextBox1


El Marcador de posición no genera ninguna etiqueta, 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 interesantes.

  • BackImageUrl: Obtiene / Establece la URL de la imagen de fondo para el panel

  • HorizontalAlign: Obtiene / Establece el
    alineación horizontal de los contenidos de los padres

  • Ajustar: Obtiene / Establece si el
    envolturas de contenido del panel

Hay un buen artículo en startvbnet here .


I extraño bug * en visual studio 2010, si pones controles dentro de un Marcador de posición, no los renderiza 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 el momento del diseño en la GUI.


Un panel se expande a un tramo (o un div), con su contenido dentro de él. Un marcador de posición es solo eso, un marcador de posición que se reemplaza por lo que pone en él.