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


Web パーツ機能において、ゾーンとは Web パーツ コントロールを格納した Web ページ上の定義領域です。ゾーンの主な機能は、ゾーンに含まれるコントロールをレイアウトし、それらのコントロールに共通なユーザー インターフェイス (UI: User Interface) を提供することです。ゾーンに関する一般情報および Web パーツ アプリケーションにおける使用方法については、基本 WebZone クラスおよび WebPartZoneBase クラスの参照ドキュメントと、「Web パーツ コントロール セットの概要」のトピックを参照してください。
WebPartZone コントロールの特別な機能は、Web パーツ アプリケーションの主要な UI を構成する WebPart コントロールを格納することです。WebPartZone コントロールは、Web ページ上で永続化形式で宣言できます。これによって、開発者はこのコントロールをテンプレートとして使用し、<asp:webpartzone> 要素内の他のサーバー コントロールに追加できます。いずれの型のサーバー コントロールも、WebPartZone ゾーンに追加されると、実行時に WebPart コントロールとして機能します。これは、追加されたコントロールが WebPart コントロール、ユーザー コントロール、カスタム コントロール、または ASP.NET コントロールのいずれの場合でも同様です。詳細については、GenericWebPart クラスのトピックを参照してください。
WebPart コントロールが含まれる以外に、WebPartZone コントロールには、このコントロールに含まれるコントロールの UI も用意されています。この共通 UI はまとめてクロムと呼ばれており、すべてのコントロールにおいて、境界線、タイトル、ヘッダーとフッター、スタイル特性、動詞 (ユーザーがコントロールで実行できる、クローズや最小化などの UI 関連処理) などの周辺 UI 要素で構成されます。
WebPartZone クラスのほとんどの動作は、基本 WebZone クラスおよび基本 WebPartZoneBase クラスから派生していますが、ただ 1 つ独自のメンバとして ZoneTemplate プロパティが追加されています。このプロパティは、ITemplate オブジェクトを参照します。このオブジェクトは、ページの開発者が .aspx ページの宣言型マークアップの <zonetemplate> 要素を使用して、コントロールをゾーン内に静的に定義できるテンプレートです。
ユーザー補助このコントロールに既定でレンダリングされるマークアップは、Web Content Accessibility Guidelines (WCAG) 1.0 の優先度 1 ガイドラインなどのユーザー補助に関する標準に適合しない可能性があります。このコントロールのユーザー補助サポートの詳細については、「ASP.NET コントロールとユーザー補助」を参照してください。

Web パーツ ページの WebPartZone コントロールを使用する方法を次のコード例に示します。コード例を実行するためには、このソース コードをコンパイルする必要があります。それを明示的にコンパイルし、コンパイル済みのアセンブリを Web サイトの Bin フォルダまたはグローバル アセンブリ キャッシュに配置できます。サイトの App_Code フォルダにソース コードを配置し、実行時に動的にコンパイルすることもできます。両方のコンパイル方法を示すチュートリアルについては、「チュートリアル : カスタム サーバー コントロールの開発と使用」を参照してください。
コード例の最初の部分では、WebPartZone クラスから継承し、コンストラクタの 2 つの基本ゾーン プロパティを設定するカスタム クラスを示しています。
Imports System.Web.UI.WebControls.WebParts Imports System.Web.UI.WebControls Imports System.Web.UI Imports System.Web Imports System.Security.Permissions Imports System.ComponentModel Imports System.Collections Imports System Namespace Samples.AspNet.VB.Controls <AspNetHostingPermission(SecurityAction.Demand, _ Level := AspNetHostingPermissionLevel.Minimal)> _ <AspNetHostingPermission(SecurityAction.InheritanceDemand, _ Level := AspNetHostingPermissionLevel.Minimal)> _ Public Class MyWebPartZone Inherits WebPartZone Public Sub New() MyBase.New MyBase.VerbButtonType = ButtonType.Button MyBase.CloseVerb.Enabled = false End Sub End Class End Namespace
using System; using System.Collections; using System.ComponentModel; using System.Security.Permissions; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; namespace Samples.AspNet.CS.Controls { [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class MyWebPartZone : WebPartZone { public MyWebPartZone() { base.VerbButtonType = ButtonType.Button; base.CloseVerb.Enabled = false; } } }
コード例の 2 番目の部分では、カスタムの WebPartZone コントロールを含んだページを示しています。このページには、ページの上部に、カスタム ゾーンが格納されているアセンブリを参照する特殊な Register ディレクティブが必要です。このページには、すべての Web パーツ ページで必要とされる <asp:webpartmanager> 要素も格納されます。カスタムの WebPartZone コントロールを表す <cc1:MyWebPartZone> 要素には、標準 ASP.NET Calendar コントロールが含まれます。このコントロールは WebPartZone ゾーン内に格納されているため、Calendar コントロールは、実行時に WebPart コントロールとして動作できるようにする GenericWebPart コントロールでラップされます。
<%@ Page Language="vb" %> <%@ Register TagPrefix="cc1" Namespace="Samples.AspNet.VB.Controls" Assembly="MyWebPartZoneVB" %> <html > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:WebPartManager ID="WebPartManager1" runat="server" /> <cc1:MyWebPartZone ID="MyWebPartZone1" runat="server"> <VerbStyle Font-Italic="true" /> <PartChromeStyle BackColor="lightblue" /> <PartStyle BackColor="gray" /> <PartTitleStyle Font-Bold="true" /> <ZoneTemplate> <asp:Calendar ID="Calendar1" runat="server" Title="My Calendar" /> </ZoneTemplate> </cc1:MyWebPartZone> </div> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Register TagPrefix="cc1" Namespace="Samples.AspNet.CS.Controls" Assembly="MyWebPartZoneCS" %> <html > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:WebPartManager ID="WebPartManager1" runat="server" /> <cc1:MyWebPartZone ID="MyWebPartZone1" runat="server"> <VerbStyle Font-Italic="true" /> <PartChromeStyle BackColor="lightblue" /> <PartStyle BackColor="gray" /> <PartTitleStyle Font-Bold="true" /> <ZoneTemplate> <asp:Calendar ID="Calendar1" runat="server" Title="My Calendar" /> </ZoneTemplate> </cc1:MyWebPartZone> </div> </form> </body> </html>
カスタムの WebPartZone コントロールの宣言型マークアップを確認してください。次のコード例に示すように、マークアップにはさまざまなゾーン レベルのプロパティを設定できます。
![]() |
---|
<zonetemplate> 要素は正しい手順で使用してください。「解説」で説明されているように、この要素は、ページで宣言される静的 WebPart コントロールをラップするために WebPartZone ゾーン内に配置する必要があります。 |
<cc1:MyWebPartZone ID="MyWebPartZone1" runat="server"> <VerbStyle Font-Italic="true" /> <PartChromeStyle BackColor="lightblue" /> <PartStyle BackColor="gray" /> <PartTitleStyle Font-Bold="true" /> <ZoneTemplate> <asp:Calendar ID="Calendar1" runat="server" Title="My Calendar" /> </ZoneTemplate> </cc1:MyWebPartZone>
<cc1:MyWebPartZone ID="MyWebPartZone1" runat="server"> <VerbStyle Font-Italic="true" /> <PartChromeStyle BackColor="lightblue" /> <PartStyle BackColor="gray" /> <PartTitleStyle Font-Bold="true" /> <ZoneTemplate> <asp:Calendar ID="Calendar1" runat="server" Title="My Calendar" /> </ZoneTemplate> </cc1:MyWebPartZone>


System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.CompositeControl
System.Web.UI.WebControls.WebParts.WebZone
System.Web.UI.WebControls.WebParts.WebPartZoneBase
System.Web.UI.WebControls.WebParts.WebPartZone


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


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