Share via


WebPartCollection Classe

Definição

Contém uma coleção de controles WebPart usados para controlar e gerenciar grupos de controles relacionados. Essa classe não pode ser herdada.

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
Herança
WebPartCollection

Exemplos

O exemplo de código a seguir demonstra o uso do WebPartCollection objeto em uma página Web Parts. Este exemplo tem três partes:

  • O código da página em uma classe parcial.

  • A página da Web que contém os controles.

  • Uma descrição de como o exemplo funciona em um navegador.

A primeira parte do exemplo de código contém o código da página em uma classe parcial. Observe que o Button1_Click método cria um WebPartCollection objeto que consiste em todos os WebPart controles referenciados na propriedade, que WebPartManager.WebParts inclui todos os WebPart controles na página. O método itera por todos os controles e alterna a propriedade de ChromeState cada controle, que determina se esse controle é normal ou 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

A segunda parte do exemplo de código é a página da Web que contém os controles. Observe que os controles declarados WebPartZone1 são controles de servidor padrão ASP.NET, mas como eles são encapsulados como GenericWebPart controles em tempo de execução e a GenericWebPart classe herda da WebPart classe, os controles são tratados automaticamente como WebPart controles em tempo de execução e, portanto, são incluídos no 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>

Depois de carregar a página em um navegador e clicar no botão Alternar ChromeState , o código na classe parcial faz loops pelo WebPartCollection objeto e, como alternativa, minimiza os controles ou os retorna ao normal. Ou, se você clicar repetidamente no botão Alternar BulletedList1 Title , o título do controle superior será alterado para valores alternativos.

Comentários

A WebPartCollection classe é uma coleção somente leitura de controles, normalmente usada por WebPartZoneBase e WebPartManager controles para gerenciar conjuntos de WebPart controles.

Um WebPartManager controle usa um WebPartCollection objeto para manter uma lista de todos os WebPart controles em uma página, enquanto um WebPartZoneBase controle usa um WebPartCollection objeto para rastrear os WebPart controles que ele contém.

Observação

A WebPartCollection coleção contém controles WebPart e outros controles de servidor (como controles de usuário, controles personalizados e controles ASP.NET) que são colocados em WebPartZoneBase zonas e usados como parte de aplicativos Web Parts. Portanto, por exemplo, se você tiver uma WebPartZone zona em uma página e dentro dela declarar um controle personalizado WebPart e o controle ASP.NETCalendar, ambos os controles estarão na WebPartCollection coleção referenciada pela WebParts propriedade.

O WebPartCollection objeto existe para que o conjunto de controle Web Parts possa funcionar com coleções fortemente tipdas. Da mesma forma, se você quiser executar operações em massa em um conjunto de WebPart controles, poderá obter uma referência a um WebPartCollection objeto usando a WebParts propriedade. Por exemplo, talvez você queira fazer loop em todos os WebPart controles em uma página e alterar a aparência deles de alguma forma. Embora o WebPartCollection objeto seja somente leitura, você pode fazer alterações programáticas nas propriedades dos controles subjacentes referenciados na coleção.

Construtores

WebPartCollection()

Inicializa uma nova instância vazia da classe WebPartCollection.

WebPartCollection(ICollection)

Inicializa uma nova instância de um objeto WebPartCollection passando uma coleção ICollection de controles WebPart.

Propriedades

Count

Obtém o número de elementos contidos na instância de ReadOnlyCollectionBase.

(Herdado de ReadOnlyCollectionBase)
InnerList

Obtém a lista de elementos contidos na instância ReadOnlyCollectionBase.

(Herdado de ReadOnlyCollectionBase)
Item[Int32]

Retorna um membro da coleção com base em sua posição na coleção.

Item[String]

Retorna um membro da coleção com base em um identificador de cadeia de caracteres exclusivo.

Métodos

Contains(WebPart)

Retorna um valor que indica se um determinado controle existe na coleção.

CopyTo(WebPart[], Int32)

Copia a coleção para uma matriz de objetos de WebPart.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetEnumerator()

Retorna um enumerador que itera pela instância ReadOnlyCollectionBase.

(Herdado de ReadOnlyCollectionBase)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IndexOf(WebPart)

Retorna a posição de um membro específico da coleção.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

ICollection.CopyTo(Array, Int32)

Copia todo o ReadOnlyCollectionBase em um Array unidimensional compatível, começando no índice especificado da matriz de destino.

(Herdado de ReadOnlyCollectionBase)
ICollection.IsSynchronized

Obtém um valor que indica se o acesso a um objeto ReadOnlyCollectionBase é sincronizado (thread-safe).

(Herdado de ReadOnlyCollectionBase)
ICollection.SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso a um objeto ReadOnlyCollectionBase.

(Herdado de ReadOnlyCollectionBase)

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Aplica-se a

Confira também