WebPartCollection 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
包含 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 物件。 此範例有三個部分:
部分類別中頁面的程序代碼。
包含控件的網頁。
範例在瀏覽器中運作方式的描述。
程式代碼範例的第一個部分包含部分類別中頁面的程序代碼。 請注意,Button1_Click
方法會WebPartCollection建立 物件,其中包含 屬性中WebPartManager.WebParts參考的所有控件,其中包含頁面上的所有WebPartWebPart控件。 方法會逐一查看所有控件,並切換每個控件的 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 是控件的只讀集合,通常由 WebPartZoneBase 和 WebPartManager 控件用來管理控件集合 WebPart 。
WebPartManager控件會使用 WebPartCollection 物件來保留頁面上所有WebPart控件的清單,而 WebPartZoneBase 控件則使用 WebPartCollection 對象來追蹤WebPart它所包含的控件。
注意
集合 WebPartCollection 包含 WebPart 控制項和其他伺服器控制項 (,例如使用者控制件、自定義控制項和 ASP.NET 控制件) 放在 WebPartZoneBase 區域中,並做為網頁元件應用程式的一部分。 例如,如果您在頁面中有區域,而且在其中宣告自定義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。 |