WebPartCollection Clase

Definición

Contiene una colección de controles WebPart utilizados para realizar un seguimiento y administrar grupos de controles relacionados. Esta clase no puede heredarse.

public ref class WebPartCollection sealed : System::Collections::ReadOnlyCollectionBase
public sealed class WebPartCollection : System.Collections.ReadOnlyCollectionBase
type WebPartCollection = class
    inherit ReadOnlyCollectionBase
Public NotInheritable Class WebPartCollection
Inherits ReadOnlyCollectionBase
Herencia
WebPartCollection

Ejemplos

En el ejemplo de código siguiente se muestra el uso del WebPartCollection objeto en una página de elementos web. Este ejemplo tiene tres partes:

  • Código de la página en una clase parcial.

  • Página web que contiene los controles.

  • Descripción de cómo funciona el ejemplo en un explorador.

La primera parte del ejemplo de código contiene el código de la página en una clase parcial. Tenga en cuenta que el Button1_Click método crea un WebPartCollection objeto que consta de todos los WebPart controles a los que se hace referencia en la WebPartManager.WebParts propiedad , que incluye todos los WebPart controles de la página. El método recorre en iteración todos los controles y alterna la propiedad de ChromeState cada control, que determina si ese control es normal o minimizado.

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class webpartcollectioncs : System.Web.UI.Page
{
  protected void Button1_Click(object sender, EventArgs e)
  {

    WebPartCollection partCollection = mgr1.WebParts;

    foreach (WebPart part in partCollection)
    {
      if (part.ChromeState != PartChromeState.Minimized)
        part.ChromeState = PartChromeState.Minimized;
      else
        part.ChromeState = PartChromeState.Normal;
    }
  }
  protected void Button2_Click(object sender, EventArgs e)
  {
    WebPartCollection partCollection = WebPartZone1.WebParts;

    if (partCollection[0].Title == "My Link List")
      partCollection[0].Title = "Favorite Links";
    else
      partCollection[0].Title = "My Link List";
  }
}
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

Partial Public Class webpartcollectionvb

  Inherits System.Web.UI.Page

  Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)

    Dim partCollection As WebPartCollection = mgr1.WebParts
    Dim part As WebPart

    For Each part In partCollection
      If part.ChromeState <> PartChromeState.Minimized Then
        part.ChromeState = PartChromeState.Minimized
      Else
        part.ChromeState = PartChromeState.Normal
      End If
    Next

  End Sub

  Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)

    Dim partCollection As WebPartCollection = WebPartZone1.WebParts

    If partCollection(0).Title = "My Link List" Then
      partCollection(0).Title = "Favorite Links"
    Else
      partCollection(0).Title = "My Link List"
    End If

  End Sub

End Class

La segunda parte del ejemplo de código es la página web que contiene los controles. Tenga en cuenta que los controles declarados en WebPartZone1 son controles de servidor estándar ASP.NET, pero porque se encapsulan como GenericWebPart controles en tiempo de ejecución y la GenericWebPart clase hereda de la WebPart clase , los controles se tratan automáticamente como WebPart controles en tiempo de ejecución y, por lo tanto, se incluyen en el WebPartCollection objeto .

<%@ Page Language="C#" 
  Codefile="webpartcollection.cs" 
  Inherits="webpartcollectioncs" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr1" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList 
            ID="BulletedList1" 
            Runat="server"
            DisplayMode="HyperLink" 
            Title="Favorite Links" >
            <asp:ListItem Value="http://msdn.microsoft.com">
              MSDN
            </asp:ListItem>
            <asp:ListItem Value="http://www.asp.net">
              ASP.NET
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
              MSN
            </asp:ListItem>
          </asp:BulletedList>
          <br />
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar" />
        </ZoneTemplate>
      </asp:WebPartZone>
    </div>
    <hr />
    <asp:Button ID="Button1" runat="server" Width="200"
      Text="Toggle ChromeState" OnClick="Button1_Click" />
    <br />
    <asp:Button ID="Button2" runat="server" Width="200"
        Text="Toggle BulletedList1 Title" 
        OnClick="Button2_Click"/>
    </form>
</body>
</html>
<%@ Page Language="vb"
  Codefile="webpartcollection.vb" 
  Inherits="webpartcollectionvb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr1" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList 
            ID="BulletedList1" 
            Runat="server"
            DisplayMode="HyperLink" 
            Title="Favorite Links" >
            <asp:ListItem Value="http://msdn.microsoft.com">
              MSDN
            </asp:ListItem>
            <asp:ListItem Value="http://www.asp.net">
              ASP.NET
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
              MSN
            </asp:ListItem>
          </asp:BulletedList>
          <br />
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar" />
        </ZoneTemplate>
      </asp:WebPartZone>
    </div>
    <hr />
    <asp:Button ID="Button1" runat="server" Width="200"
      Text="Toggle ChromeState" OnClick="Button1_Click" />
    <br />
    <asp:Button ID="Button2" runat="server" Width="200"
        Text="Toggle BulletedList1 Title" 
        OnClick="Button2_Click"/>
    </form>
</body>
</html>

Después de cargar la página en un explorador y hacer clic en el botón Alternar ChromeState , el código de la clase parcial recorre el WebPartCollection objeto y, alternativamente, minimiza los controles o los devuelve a la normalidad. O bien, si hace clic repetidamente en el botón Toggle BulletedList1 Title ,el título del control superior se cambia a valores alternativos.

Comentarios

La WebPartCollection clase es una colección de solo lectura de controles, que normalmente usan WebPartZoneBase los controles y WebPartManager para administrar conjuntos de WebPart controles.

Un WebPartManager control usa un WebPartCollection objeto para mantener una lista de todos los WebPart controles de una página, mientras que un WebPartZoneBase control usa un WebPartCollection objeto para realizar un seguimiento de los WebPart controles que contiene.

Nota

La WebPartCollection colección contiene WebPart controles y otros controles de servidor (como controles de usuario, controles personalizados y controles ASP.NET) que se colocan en WebPartZoneBase zonas y se usan como parte de las aplicaciones de elementos web. Por ejemplo, si tiene una WebPartZone zona en una página y, dentro de ella, declara un control personalizado WebPart y el control ASP.NET Calendar , ambos controles estarán en la WebPartCollection colección a la que hace referencia la WebParts propiedad .

El WebPartCollection objeto existe para que el conjunto de controles de elementos web pueda funcionar con colecciones fuertemente tipadas. De forma similar, si desea realizar operaciones masivas en un conjunto de WebPart controles, puede obtener una referencia a un WebPartCollection objeto mediante la WebParts propiedad . Por ejemplo, es posible que quiera recorrer en bucle todos los WebPart controles de una página y cambiar su apariencia de alguna manera. Aunque el WebPartCollection objeto es de solo lectura, puede realizar cambios mediante programación en las propiedades de los controles subyacentes a los que se hace referencia en la colección.

Constructores

WebPartCollection()

Inicializa una nueva instancia vacía de la clase WebPartCollection.

WebPartCollection(ICollection)

Inicializa una nueva instancia de un objeto WebPartCollection pasando como parámetro una colección ICollection de controles WebPart.

Propiedades

Count

Obtiene el número de elementos contenidos en la instancia de ReadOnlyCollectionBase.

(Heredado de ReadOnlyCollectionBase)
InnerList

Obtiene la lista de elementos incluidos en la instancia de ReadOnlyCollectionBase.

(Heredado de ReadOnlyCollectionBase)
Item[Int32]

Devuelve un miembro de la colección según su posición en la colección.

Item[String]

Devuelve un miembro de la colección correspondiente a un identificador de cadena único.

Métodos

Contains(WebPart)

Obtiene un valor que indica si un control determinado existe en la colección.

CopyTo(WebPart[], Int32)

Copia la colección en una matriz de objetos WebPart.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetEnumerator()

Devuelve un enumerador que recorre en iteración la instancia de ReadOnlyCollectionBase.

(Heredado de ReadOnlyCollectionBase)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IndexOf(WebPart)

Devuelve la posición de un miembro determinado de la colección.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

ICollection.CopyTo(Array, Int32)

Copia la totalidad de ReadOnlyCollectionBase en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino.

(Heredado de ReadOnlyCollectionBase)
ICollection.IsSynchronized

Obtiene un valor que indica si el acceso a un objeto ReadOnlyCollectionBase está sincronizado (es seguro para subprocesos).

(Heredado de ReadOnlyCollectionBase)
ICollection.SyncRoot

Obtiene un objeto que se puede utilizar para sincronizar el acceso a un objeto ReadOnlyCollectionBase.

(Heredado de ReadOnlyCollectionBase)

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.

Se aplica a

Consulte también