WebPartCollection Klass

Definition

Innehåller en samling WebPart kontroller som används för att spåra och hantera relaterade grupper av kontroller. Det går inte att ärva den här klassen.

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

Exempel

I följande kodexempel visas hur objektet används WebPartCollection på en webbdelssida. Det här exemplet har tre delar:

  • Koden för sidan i en partiell klass.

  • Webbsidan som innehåller kontrollerna.

  • En beskrivning av hur exemplet fungerar i en webbläsare.

Den första delen av kodexemplet innehåller koden för sidan i en partiell klass. Observera att Button1_Click metoden skapar ett WebPartCollection objekt som består av alla WebPart kontroller som refereras till i WebPartManager.WebParts egenskapen, som innehåller alla WebPart kontroller på sidan. Metoden itererar genom alla kontroller och växlar varje kontrolls ChromeState egenskap, vilket avgör om kontrollen är normal eller minimerad.

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

Den andra delen av kodexemplet är webbsidan som innehåller kontrollerna. Observera att de kontroller som deklareras i WebPartZone1 är standardkontroller för ASP.NET server. men eftersom de omsluts som GenericWebPart kontroller vid körning, och klassen GenericWebPart ärver från klassen WebPart, behandlas kontrollerna automatiskt som WebPart kontroller vid körning och ingår därför i objektet WebPartCollection.

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

När du har läst in sidan i en webbläsare och klickat på knappen Växla ChromeState loopar koden i den partiella klassen igenom WebPartCollection objektet och minimerar kontrollerna alternativt eller återgår till det normala. Om du upprepade gånger klickar på knappen Växla punktlista1 rubrik ändras rubriken för den översta kontrollen till alternativa värden.

Kommentarer

Klassen WebPartCollection är en skrivskyddad samling kontroller, som vanligtvis används av WebPartZoneBase och WebPartManager kontroller för att hantera uppsättningar med WebPart kontroller.

En WebPartManager kontroll använder ett WebPartCollection objekt för att behålla en lista över alla WebPart kontroller på en sida, medan en WebPartZoneBase kontroll använder ett WebPartCollection objekt för att spåra de kontroller som den WebPart innehåller.

Note

Samlingen WebPartCollection innehåller både WebPart kontroller och andra serverkontroller (till exempel användarkontroller, anpassade kontroller och ASP.NET kontroller) som placeras i WebPartZoneBase-zoner och används som en del av webbdelsprogram. Om du till exempel har en WebPartZone zon på en sida, och inom den deklarerar du en anpassad WebPart kontroll och kontrollen ASP.NET Calendar, kommer båda kontrollerna att finnas i samlingen WebPartCollection som refereras av egenskapen WebParts.

Objektet WebPartCollection finns så att kontrolluppsättningen webbdelar kan fungera med starkt skrivna samlingar. På samma sätt kan du få en referens till ett WebPart objekt med hjälp WebPartCollection av egenskapen om du vill utföra massåtgärder på en uppsättning WebParts kontroller. Du kanske till exempel vill loopa igenom alla WebPart kontroller på en sida och ändra deras utseende på något sätt. Även om objektet WebPartCollection är skrivskyddat kan du göra programmatiska ändringar i egenskaperna för de underliggande kontroller som refereras i samlingen.

Konstruktorer

Name Description
WebPartCollection()

Initierar en tom ny instans av WebPartCollection klassen.

WebPartCollection(ICollection)

Initierar en ny instans av ett WebPartCollection objekt genom att skicka in en ICollection samling WebPart kontroller.

Egenskaper

Name Description
Count

Hämtar antalet element som finns i instansen ReadOnlyCollectionBase .

(Ärvd från ReadOnlyCollectionBase)
InnerList

Hämtar listan över element som finns i instansen ReadOnlyCollectionBase .

(Ärvd från ReadOnlyCollectionBase)
Item[Int32]

Returnerar en medlem i samlingen baserat på dess position i samlingen.

Item[String]

Returnerar en medlem i samlingen baserat på en unik strängidentifierare.

Metoder

Name Description
Contains(WebPart)

Returnerar ett värde som anger om det finns en viss kontroll i samlingen.

CopyTo(WebPart[], Int32)

Kopierar samlingen till en matris med WebPart objekt.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetEnumerator()

Returnerar en uppräkning som itererar genom instansen ReadOnlyCollectionBase .

(Ärvd från ReadOnlyCollectionBase)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IndexOf(WebPart)

Returnerar positionen för en viss medlem i samlingen.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
ICollection.CopyTo(Array, Int32)

Kopierar hela ReadOnlyCollectionBase till en kompatibel endimensionell Array, med början vid det angivna indexet för målmatrisen.

(Ärvd från ReadOnlyCollectionBase)
ICollection.IsSynchronized

Hämtar ett värde som anger om åtkomsten till ett ReadOnlyCollectionBase objekt synkroniseras (trådsäker).

(Ärvd från ReadOnlyCollectionBase)
ICollection.SyncRoot

Hämtar ett objekt som kan användas för att synkronisera åtkomst till ett ReadOnlyCollectionBase objekt.

(Ärvd från ReadOnlyCollectionBase)

Tilläggsmetoder

Name Description
AsParallel(IEnumerable)

Möjliggör parallellisering av en fråga.

AsQueryable(IEnumerable)

Konverterar en IEnumerable till en IQueryable.

Cast<TResult>(IEnumerable)

Omvandlar elementen i en IEnumerable till den angivna typen.

OfType<TResult>(IEnumerable)

Filtrerar elementen i en IEnumerable baserat på en angiven typ.

Gäller för

Se även