WebPartCollection クラス
アセンブリ: System.Web (system.web.dll 内)


WebPartCollection クラスは、コントロールの読み取り専用のコレクションで、通常、WebPartZoneBase コントロールおよび WebPartManager コントロールによって WebPart コントロールのセットを管理するために使用されます。
WebPartManager コントロールは、WebPartCollection オブジェクトを使用してページ上のすべての WebPart コントロールのリストを保持します。それに対して、WebPartZoneBase コントロールは、WebPartCollection オブジェクトを使用してそのコレクションに含まれる WebPart コントロールを追跡します。
![]() |
---|
WebPartCollection コレクションは、WebPart コントロールと、WebPartZoneBase ゾーン内に配置されて Web パーツ アプリケーションの一部として使用される他のサーバー コントロール (ユーザー コントロール、カスタム コントロール、ASP.NET コントロールなど) の両方を格納します。たとえば、ページに WebPartZone ゾーンが存在しており、そのゾーン内でカスタム WebPart コントロールと ASP.NET Calendar コントロールを宣言すると、両方のコントロールが、WebPartCollection コレクション内で WebParts プロパティによって参照されます。 |
WebPartCollection オブジェクトによって、Web パーツ コントロール セットは、厳密に型指定されたコレクションを使用できます。同様に、WebPart コントロールのセットに対して大量の操作を一括して実行する場合、WebParts プロパティを使用して WebPartCollection オブジェクトへの参照を取得できます。たとえば、ページのすべての WebPart コントロールを反復処理して、なんらかの方法でそれらの外観を変更することが必要な場合があります。WebPartCollection オブジェクトは読み取り専用ですが、コレクションで参照される基になるコントロールのプロパティをプログラムによって変更することはできます。

Web パーツ ページの WebPartCollection オブジェクトを使用する方法を次のコード例に示します。この例は、3 つの部分で構成されます。
コード例の最初の部分には、部分クラス内のページのコードが含まれます。Button1_Click メソッドは、WebPartManager.WebParts プロパティで参照されるすべての WebPart コントロールで構成される WebPartCollection オブジェクトを作成します。このオブジェクトには、ページ上のすべての WebPart コントロールが含まれます。このメソッドは、すべてのコントロールを反復処理して、コントロールが標準の状態かまたは最小化状態かを決定する各コントロールの ChromeState プロパティの値を切り替えます。
Imports System 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
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"; } }
コード例の 2 番目の部分は、コントロールを含んでいる Web ページです。WebPartZone1 内で宣言されているコントロールは標準 ASP.NET サーバー コントロールです。しかし、それらのコントロールは、実行時に GenericWebPart コントロールとしてラップされ、GenericWebPart クラスは WebPart クラスから継承されるため、実行時に自動的に WebPart コントロールとして扱われ、結果として WebPartCollection オブジェクトに含まれます。
<%@ Page Language="vb" Codefile="webpartcollection.vb" Inherits="webpartcollectionvb" %> <html > <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>
<%@ Page Language="C#" Codefile="webpartcollection.cs" Inherits="webpartcollectioncs" %> <html > <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>
ブラウザでページを読み込み、[Toggle ChromeState] をクリックすると、部分クラスのコードは WebPartCollection オブジェクトを反復処理して、各コントロールを最小化するか標準の状態に戻します。または、繰り返し [Toggle BulletedList1 Title] ボタンをクリックすると、最前面のコントロールのタイトルの値が交互に入れ替わります。


System.Collections.ReadOnlyCollectionBase
System.Web.UI.WebControls.WebParts.WebPartCollection


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- WebPartCollection クラスのページへのリンク