WebPartCollection 類別

定義

包含 WebPart 控制項的集合,可用來追蹤及管理相關的控制項群組。 此類別無法獲得繼承。

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
繼承
WebPartCollection

範例

下列程式碼範例示範如何在Web 組件頁面上使用 WebPartCollection 物件。 此範例有三個部分:

  • 部分類別中頁面的程式碼。

  • 包含控制項的網頁。

  • 範例在瀏覽器中運作方式的描述。

程式碼範例的第一個部分包含部分類別中頁面的程式碼。 請注意, Button1_Click 方法會 WebPartCollection 建立 物件,該物件是由 屬性中 WebPartManager.WebParts 參考的所有控制項所組成,其中包含頁面上的所有 WebPart WebPart 控制項。 方法會逐一查看所有控制項,並切換每個控制項的 ChromeState 屬性,以判斷該控制項是否正常或最小化。

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

程式碼範例的第二個部分是包含控制項的網頁。 請注意,在 中 WebPartZone1 宣告的控制項是標準 ASP.NET 伺服器控制項,但是因為它們會在執行時間包裝為 GenericWebPart 控制項,而 GenericWebPart 類別繼承自 WebPart 類別,因此控制項會在執行時間自動視為 WebPart 控制項,因此會包含在 物件中 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>

在瀏覽器中載入頁面並按一下 [切換 ChromeState ] 按鈕之後,部分類別中的程式碼會迴圈查看 WebPartCollection 物件,並替代地將控制項最小化,或將它們傳回正常。 或者,如果您重複按一下 [切換專案符號清單1 標題 ] 按鈕,最上方控制項的標題會變更為替代值。

備註

類別 WebPartCollection 是控制項的唯讀集合,通常由 WebPartZoneBaseWebPartManager 控制項用來管理控制項集 WebPart

WebPartManager控制項會使用 WebPartCollection 物件來保留頁面上所有 WebPart 控制項的清單,而 WebPartZoneBase 控制項則使用 WebPartCollection 物件來追蹤其包含的 WebPart 控制項。

注意

WebPartCollection集合包含 WebPart 控制項和其他伺服器控制項 (,例如使用者控制項、自訂控制項和 ASP.NET 控制項,這些控制項) 放在 WebPartZoneBase 區域中,並做為Web 組件應用程式的一部分使用。 例如,如果您在頁面中有區域,並在其中宣告自訂 WebPart 控制項和 ASP.NET Calendar 控制項,這兩個 WebPartZone 控制項都會位於 WebPartCollection 屬性所參考的 WebParts 集合中。

物件 WebPartCollection 存在,因此Web 組件控制項集可以使用強型別集合。 同樣地,如果您想要對一組 WebPart 控制項執行大量作業,您可以使用 屬性取得物件的 WebParts 參考 WebPartCollection 。 例如,您可能會想要迴圈查看頁面上的所有 WebPart 控制項,並以某種方式變更其外觀。 即使 WebPartCollection 物件是唯讀的,您也可以對集合中所參考之基礎控制項的屬性進行程式設計變更。

建構函式

WebPartCollection()

初始化 WebPartCollection 類別新的空執行個體。

WebPartCollection(ICollection)

傳入 WebPartCollection 控制項的 ICollection 集合,初始化 WebPart 物件的新執行個體。

屬性

Count

取得 ReadOnlyCollectionBase 執行個體中包含的元素數目。

(繼承來源 ReadOnlyCollectionBase)
InnerList

取得包含於 ReadOnlyCollectionBase 執行個體中的項目清單。

(繼承來源 ReadOnlyCollectionBase)
Item[Int32]

根據成員在集合中的位置,傳回集合的成員。

Item[String]

根據唯一字串識別項傳回集合成員。

方法

Contains(WebPart)

傳回數值,表示集合中是否存在特定控制項。

CopyTo(WebPart[], Int32)

複製集合至 WebPart 物件的陣列。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetEnumerator()

傳回可逐一查看 ReadOnlyCollectionBase 執行個體的列舉值。

(繼承來源 ReadOnlyCollectionBase)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
IndexOf(WebPart)

傳回集合特定成員的位置。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

明確介面實作

ICollection.CopyTo(Array, Int32)

從目標陣列的指定索引開始,將整個 ReadOnlyCollectionBase 複製到相容的一維 Array

(繼承來源 ReadOnlyCollectionBase)
ICollection.IsSynchronized

取得值,指出對 ReadOnlyCollectionBase 物件的存取是否為同步的 (執行緒安全)。

(繼承來源 ReadOnlyCollectionBase)
ICollection.SyncRoot

取得可用來同步存取 ReadOnlyCollectionBase 物件的物件。

(繼承來源 ReadOnlyCollectionBase)

擴充方法

Cast<TResult>(IEnumerable)

IEnumerable 的項目轉換成指定的型別。

OfType<TResult>(IEnumerable)

根據指定的型別來篩選 IEnumerable 的項目。

AsParallel(IEnumerable)

啟用查詢的平行化作業。

AsQueryable(IEnumerable)

IEnumerable 轉換成 IQueryable

適用於

另請參閱