Udostępnij za pośrednictwem


WebPartCollection Klasa

Definicja

Zawiera kolekcję kontrolek używanych WebPart do śledzenia powiązanych grup kontrolek i zarządzania nimi. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
WebPartCollection

Przykłady

W poniższym przykładzie kodu pokazano użycie obiektu na stronie składników WebPartCollection Web Part. Ten przykład ma trzy części:

  • Kod strony w klasie częściowej.

  • Strona sieci Web zawierająca kontrolki.

  • Opis działania przykładu w przeglądarce.

Pierwsza część przykładu kodu zawiera kod strony w klasie częściowej. Należy pamiętać, że Button1_Click metoda tworzy WebPartCollection obiekt, który składa się ze wszystkich WebPart kontrolek, do których odwołuje się WebPartManager.WebParts właściwość , która zawiera wszystkie kontrolki WebPart na stronie. Metoda iteruje wszystkie kontrolki i przełącza właściwość każdej kontrolki ChromeState , która określa, czy ta kontrolka jest normalna, czy zminimalizowana.

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

Drugą częścią przykładu kodu jest strona internetowa zawierająca kontrolki. Zwróć uwagę, że zadeklarowane WebPartZone1 w klasie kontrolki są standardowymi ASP.NET kontrolkami serwera, ale ponieważ są one opakowane jako GenericWebPart kontrolki w czasie wykonywania, a GenericWebPart klasa dziedziczy z WebPart klasy, kontrolki są automatycznie traktowane jako WebPart kontrolki w czasie wykonywania i dlatego są uwzględniane w WebPartCollection obiekcie.

<%@ 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>

Po załadowaniu strony w przeglądarce i kliknięciu przycisku Przełącz element ChromeState kod w pętli częściowej klasy przechodzi przez WebPartCollection obiekt i na przemian minimalizuje kontrolki lub zwraca je do normy. Lub, jeśli wielokrotnie klikasz przycisk Przełącz punktowanąlistę1 Tytuł , tytuł najbardziej górnej kontrolki zostanie zmieniony na wartości alternatywne.

Uwagi

Klasa WebPartCollection jest kolekcją kontrolek tylko do odczytu, zwykle używaną przez WebPartZoneBase kontrolki i WebPartManager do zarządzania zestawami WebPart kontrolek.

Kontrolka WebPartManager używa WebPartCollection obiektu do przechowywania listy wszystkich WebPart kontrolek na stronie, natomiast WebPartZoneBase kontrolka używa WebPartCollection obiektu do śledzenia WebPart kontrolek, które zawiera.

Uwaga

Kolekcja WebPartCollection zawiera zarówno WebPart kontrolki, jak i inne kontrolki serwera (takie jak kontrolki użytkownika, kontrolki niestandardowe i kontrolki ASP.NET), które są umieszczane w WebPartZoneBase strefach i używane jako część aplikacji składników Web Part. Na przykład jeśli masz strefę na stronie, a w niej zadeklarujesz kontrolkę WebPartZone niestandardową WebPart i kontrolkę ASP.NET Calendar , obie kontrolki będą znajdować się w WebPartCollection kolekcji, do której WebParts odwołuje się właściwość .

Obiekt WebPartCollection istnieje, aby zestaw kontrolek składników Web Part mógł współdziałać z silnie typizowanymi kolekcjami. Podobnie, jeśli chcesz wykonać operacje masowe na zestawie WebPart kontrolek, możesz uzyskać odwołanie do WebPartCollection obiektu przy użyciu WebParts właściwości . Na przykład możesz chcieć przejść w pętli przez wszystkie kontrolki WebPart na stronie i zmienić ich wygląd w jakiś sposób. Mimo że WebPartCollection obiekt jest tylko do odczytu, można wprowadzić zmiany programowe we właściwościach podstawowych kontrolek, do których odwołuje się kolekcja.

Konstruktory

WebPartCollection()

Inicjuje WebPartCollection puste nowe wystąpienie klasy.

WebPartCollection(ICollection)

Inicjuje nowe wystąpienie WebPartCollection obiektu, przekazując ICollection kolekcję WebPart kontrolek.

Właściwości

Count

Pobiera liczbę elementów zawartych w wystąpieniu ReadOnlyCollectionBase .

(Odziedziczone po ReadOnlyCollectionBase)
InnerList

Pobiera listę elementów zawartych w wystąpieniu ReadOnlyCollectionBase .

(Odziedziczone po ReadOnlyCollectionBase)
Item[Int32]

Zwraca element członkowski kolekcji na podstawie jego pozycji w kolekcji.

Item[String]

Zwraca element członkowski kolekcji na podstawie unikatowego identyfikatora ciągu.

Metody

Contains(WebPart)

Zwraca wartość wskazującą, czy określona kontrolka istnieje w kolekcji.

CopyTo(WebPart[], Int32)

Kopiuje kolekcję do tablicy WebPart obiektów.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetEnumerator()

Zwraca moduł wyliczający, który iteruje po wystąpieniu ReadOnlyCollectionBase .

(Odziedziczone po ReadOnlyCollectionBase)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IndexOf(WebPart)

Zwraca pozycję określonego elementu członkowskiego kolekcji.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

ICollection.CopyTo(Array, Int32)

Kopiuje całość ReadOnlyCollectionBase do zgodnego jednowymiarowego Arrayobiektu , zaczynając od określonego indeksu tablicy docelowej.

(Odziedziczone po ReadOnlyCollectionBase)
ICollection.IsSynchronized

Pobiera wartość wskazującą ReadOnlyCollectionBase , czy dostęp do obiektu jest synchronizowany (bezpieczny wątek).

(Odziedziczone po ReadOnlyCollectionBase)
ICollection.SyncRoot

Pobiera obiekt, który może służyć do synchronizowania dostępu do ReadOnlyCollectionBase obiektu.

(Odziedziczone po ReadOnlyCollectionBase)

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy obiektu IEnumerable na określony typ.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable elementu na podstawie określonego typu.

AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje element IEnumerable na .IQueryable

Dotyczy

Zobacz też