WebPartManager.WebParts プロパティ
アセンブリ: System.Web (system.web.dll 内)

WebPart コントロールのセットへの参照が格納された WebPartCollection。

WebPartManager コントロールは、WebParts プロパティを使用して、ページ上の WebPartZoneBase ゾーン内に配置されているすべての WebPart コントロールを追跡します。コレクションは読み取り専用ですが、コレクションを通じて個々の WebPart コントロールにアクセスし、プログラムでこれらを変更できます。
![]() |
---|
WebPart コントロールは、WebPartZone ゾーン外部のページ上に配置できます。これにより、このコントロールに対しては WebPartManager コントロールによる追跡や WebParts コレクションによる参照が行われなくなります。ただし、Web パーツ機能が失われて通常のサーバー コントロールとして動作するため、ゾーン外部で WebPart コントロールを使用することはほとんどありません。 |
ゾーン内に配置できるコントロールは、それがカスタム WebPart コントロール、標準 ASP.NET コントロール、ユーザー コントロール、カスタム サーバー コントロールのいずれの種類でも、実行時に WebPart コントロールとして扱うことができます。WebPart 以外のコントロールを WebPartZone ゾーン内に配置すると、実行時に ASP.NET が GenericWebPart オブジェクトでコントロールをラップするため、そのコントロールは真の WebPart コントロールとして動作します。したがって、WebParts プロパティを使用することにより、WebPartManager コントロールは、それが WebPart クラスから派生したかどうかに関係なく、すべての種類のサーバー コントロールを追跡できます。

プログラムで WebParts プロパティを使用して個々の WebPart コントロールにアクセスする方法のコード例を次に示します。Web ページの宣言マークアップの <asp:webpartzone> 要素内に、2 つの標準 ASP.NET サーバー コントロールが存在します。これらは WebPart クラスから継承しませんが、ゾーン内に存在しているため実行時に GenericWebPart オブジェクトでラップされ、WebParts プロパティで参照されるコレクションに含まれます。また、このゾーンにカスタム WebPart コントロール、ユーザー コントロール、またはカスタム サーバー コントロールを追加すると、これらを同じ方法で処理できます。
<%@ Page Language="vb" %> <script runat="server"> Protected Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Label1.Text = "WebPart count: " & _ WebPartManager1.WebParts.Count.ToString() End Sub Protected Sub Button2_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) WebPartManager1.WebParts("Calendar1").ChromeType = _ PartChromeType.BorderOnly End Sub </script> <html > <head id="Head1" runat="server"> </head> <body> <form id="form1" runat="server"> <!-- Reference the WebPartManager control. --> <asp:WebPartManager ID="WebPartManager1" runat="server" /> <div> <asp:WebPartZone ID="WebPartZone1" runat="server"> <ZoneTemplate> <asp:BulletedList DisplayMode="HyperLink" ID="BulletedList1" runat="server" Title="My Links" ExportMode="All"> <asp:ListItem Value="http://www.microsoft.com"> Microsoft </asp:ListItem> <asp:ListItem Value="http://www.msn.com"> MSN </asp:ListItem> <asp:ListItem Value="http://www.contoso.com"> Contoso Corp. </asp:ListItem> </asp:BulletedList> <asp:Calendar ID="Calendar1" runat="server" Title="My Calendar" /> </ZoneTemplate> </asp:WebPartZone> <hr /> <asp:Button ID="Button1" runat="server" Text="WebPart Count" OnClick="Button1_Click" /> <asp:Button ID="Button2" runat="server" Text="Hide Calendar Title" OnClick="Button2_Click" /> <br /> <asp:Label ID="Label1" runat="server" text="" /> </div> </form> </body> </html>
<%@ Page Language="C#" %> <script runat="server"> protected void Button1_Click(object sender, EventArgs e) { Label1.Text = "WebPart count: " + WebPartManager1.WebParts.Count.ToString(); } protected void Button2_Click(object sender, EventArgs e) { WebPartManager1.WebParts["Calendar1"].ChromeType = PartChromeType.BorderOnly; } </script> <html > <head id="Head1" runat="server"> </head> <body> <form id="form1" runat="server"> <!-- Reference the WebPartManager control. --> <asp:WebPartManager ID="WebPartManager1" runat="server" /> <div> <asp:WebPartZone ID="WebPartZone1" runat="server"> <ZoneTemplate> <asp:BulletedList DisplayMode="HyperLink" ID="BulletedList1" runat="server" Title="My Links" ExportMode="All"> <asp:ListItem Value="http://www.microsoft.com"> Microsoft </asp:ListItem> <asp:ListItem Value="http://www.msn.com"> MSN </asp:ListItem> <asp:ListItem Value="http://www.contoso.com"> Contoso Corp. </asp:ListItem> </asp:BulletedList> <asp:Calendar ID="Calendar1" runat="server" Title="My Calendar" /> </ZoneTemplate> </asp:WebPartZone> <hr /> <asp:Button ID="Button1" runat="server" Text="WebPart Count" OnClick="Button1_Click" /> <asp:Button ID="Button2" runat="server" Text="Hide Calendar Title" OnClick="Button2_Click" /> <br /> <asp:Label ID="Label1" runat="server" text="" /> </div> </form> </body> </html>
コード例が機能するには、Web.config ファイルに設定を追加して、Web パーツ記述ファイルをエクスポートできるようにする必要があります。このコード例の Web ページと同じディレクトリ内に Web.config ファイルが存在することを確認してください。<system.web> セクション内に、次のマークアップのように、true に設定された enableExport 属性を持つ <webParts> 要素が存在することを確認します。
<webParts enableExport="true">
...
</webParts>
ブラウザにページを読み込んだ後、[WebPart Count] をクリックすると、コードは WebParts プロパティを使用して、コレクション内のコントロールの数を返します。[Hide Calendar Title] をクリックすると、コードは、境界線だけが表示されタイトルは表示されないように予定表を変更します。

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からWebPartManager.WebParts プロパティを検索する場合は、下記のリンクをクリックしてください。

- WebPartManager.WebParts プロパティのページへのリンク