WebPartManager.WebParts Propiedad

Definición

Obtiene una referencia a todos los controles WebPart cuyo seguimiento efectúa el control WebPartManager en una página Web.

public:
 property System::Web::UI::WebControls::WebParts::WebPartCollection ^ WebParts { System::Web::UI::WebControls::WebParts::WebPartCollection ^ get(); };
[System.ComponentModel.Browsable(false)]
public System.Web.UI.WebControls.WebParts.WebPartCollection WebParts { get; }
[<System.ComponentModel.Browsable(false)>]
member this.WebParts : System.Web.UI.WebControls.WebParts.WebPartCollection
Public ReadOnly Property WebParts As WebPartCollection

Valor de propiedad

Colección WebPartCollection que contiene referencias a un conjunto de controles WebPart.

Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar la WebParts propiedad mediante programación para acceder a controles individuales WebPart . Observe que en el marcado declarativo de la página web, dentro del <asp:webpartzone> elemento hay dos controles estándar ASP.NET servidor. Aunque estos no heredan de la WebPart clase , ya que están en una zona, se ajustarán con un GenericWebPart objeto en tiempo de ejecución y, por tanto, se incluirán en la colección a la que hace referencia la WebParts propiedad . También puede agregar controles personalizados WebPart , controles de usuario o controles de servidor personalizados en esta zona, y se controlarían de la misma manera.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  protected void Button1_Click(object sender, EventArgs e)
  {
    Label1.Text = "WebPart count:  " +
      WebPartManager1.WebParts.Count.ToString();
  }

  protected void Button2_Click(object sender, EventArgs e)
  {
    WebPartManager1.WebParts["Calendar1"].ChromeType = 
      PartChromeType.BorderOnly;
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <!-- Reference the WebPartManager control. -->
    <asp:WebPartManager ID="WebPartManager1" runat="server" />    
    <div>
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList 
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links"
            ExportMode="All">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="WebPart Count" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Hide Calendar Title" 
        OnClick="Button2_Click" />  
      <br />
      <asp:Label ID="Label1" runat="server" text="" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="vb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Protected Sub Button1_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    
    Label1.Text = "WebPart count:  " & _
      WebPartManager1.WebParts.Count.ToString()
  End Sub

  Protected Sub Button2_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    
    WebPartManager1.WebParts("Calendar1").ChromeType = _
      PartChromeType.BorderOnly

  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <!-- Reference the WebPartManager control. -->
    <asp:WebPartManager ID="WebPartManager1" runat="server" />    
    <div>
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList 
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links"
            ExportMode="All">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="WebPart Count" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Hide Calendar Title" 
        OnClick="Button2_Click" />  
      <br />
      <asp:Label ID="Label1" runat="server" text="" />
    </div>
    </form>
</body>
</html>

Tenga en cuenta que para que el ejemplo de código funcione, debe agregar una configuración en el archivo de Web.config para habilitar la exportación de archivos de descripción de elementos web. Asegúrese de que tiene un archivo Web.config en el mismo directorio que la página web para este ejemplo de código. En la <system.web> sección , asegúrese de que hay un <webParts> elemento con un enableExport atributo establecido trueen , como en el marcado siguiente.

<webParts enableExport="true">

...

</webParts>

Después de cargar la página en un explorador, si hace clic en el botón Recuento de elementos web , el código usa la WebParts propiedad para devolver el recuento de controles de la colección. Si hace clic en el botón Ocultar título del calendario, el código cambia el calendario para que se represente solo con un borde y no con un título.

Comentarios

El WebParts control usa la WebPartManager propiedad para realizar un seguimiento de todos los WebPart controles contenidos en WebPartZoneBase las zonas de la página. Aunque la colección es de solo lectura, puede acceder a controles individuales WebPart a través de la colección y realizar cambios en ellos mediante programación.

Nota:

Es posible tener un WebPart control colocado en una página fuera de una WebPartZone zona, lo que da como resultado que el control no sea objeto de seguimiento por el WebPartManager control o al que se haga referencia en su WebParts colección. Sin embargo, hay poca razón para usar un WebPart control fuera de una zona, ya que luego pierde su funcionalidad de elementos web y actúa como un control de servidor normal.

Cualquier tipo de control que se pueda colocar en una zona, ya sea un control personalizado WebPart , un control de ASP.NET estándar, un control de usuario o un control de servidor personalizado, se puede tratar como un WebPart control en tiempo de ejecución. Cuando un control que no es un WebPart control se coloca en una WebPartZone zona, en tiempo de ejecución ASP.NET encapsula el control con un GenericWebPart objeto para que el control pueda comportarse como un control verdadero WebPart . Por lo tanto, mediante el uso de la WebParts propiedad , el WebPartManager control puede realizar un seguimiento de cualquier tipo de control de servidor, independientemente de si se deriva de la WebPart clase .

Se aplica a