EditorZoneBase イベント

名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。 ( Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。 ( Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。 ( Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。 ( Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。 ( Control から継承されます。) |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。 ( Control から継承されます。) |

関連項目
EditorZoneBase クラスSystem.Web.UI.WebControls.WebParts 名前空間
WebZone
WebPartZoneBase
CatalogZoneBase クラス
IWebEditable
その他の技術情報
チュートリアル : Web パーツ ページでの表示モードの変更ASP.NET Web パーツ ページ
EditorZoneBase クラス
アセンブリ: System.Web (system.web.dll 内)


EditorZoneBase クラスは、ToolZone を継承する特殊なゾーン クラスであり、EditorPart コントロールを含む派生ゾーンの一連の基本動作を提供します。他の種類の ToolZone クラスも複数存在します。詳細については、ToolZone クラスの概要のトピックを参照してください。他のツール ゾーンと同様に、ページが通常のブラウズ モードのときには EditorZoneBase ゾーンは表示されません。これらは、ページが編集表示モードの場合にだけ表示されます。また、他のツール ゾーンと同様に、EditorZoneBase ゾーンには、格納するようデザインされた特別な種類のコントロール (この例では EditorPart コントロール) だけが含まれます。
EditorZoneBase ゾーンには、それに含まれる編集コントロール用の特殊な UI が用意されています。これらの UI 要素の多くは、Web パーツ コントロール セット内のすべてのゾーンに共通のものです。各 Web パーツ ゾーンで共通の UI 要素の詳細については、WebZone クラスの概要のトピックを参照してください。
EditorZoneBase クラスは抽象型であるため、Web ページ上で直接使用することはできません。代わりに、EditorZoneBase クラスを継承してその動作を実装するコントロールを使用する必要があります。Web パーツ コントロール セットで提供される派生ゾーンまたはEditorZone コントロールのいずれかを使用するか、独自のカスタム EditorZoneBase コントロールを派生できます。
EditorZoneBase クラスには、エンド ユーザーが WebPart コントロールのプロパティ、レイアウト、外観などの属性を編集できるようにする特別なコントロールを含んだ共通のユーザー インターフェイス (UI: User Interface) が用意されています。ApplyVerb、CancelVerb、OKVerb の各プロパティなど、UI に適用する一部のプロパティは動詞を参照します。動詞は、ユーザーがページで実行可能な共通の動作であり、ボタン、リンク、メニュー項目、または他の要素により UI として表されます。たとえば、ユーザーがコントロールのプロパティを編集する場合、Apply 動詞をクリックして変更を保存できます。
他の複数のプロパティが、編集 UI のさまざまな位置に表示されるテキストに影響を与えます。これらのプロパティには、EmptyZoneText、ErrorText、HeaderText、InstructionText などがあります。
2 つの重要なプロパティが、関連するコントロールへの参照を提供します。EditorParts プロパティは、ゾーンに含まれる EditorPart コントロールのコレクションです。WebPartToEdit プロパティは、WebPartZone に含まれるコントロールである WebPart コントロールや他の ASP.NET サーバー コントロール、ユーザー コントロール、または現在編集中のカスタム コントロールを参照するオブジェクトです。
最後に、EditorPartChrome プロパティは、ゾーンに関連付けられ、そのゾーンの EditorPart コントロールのタイトルや境界線のスタイルなどの周辺 UI 要素のスタイル特性 (クロム) を含んだ EditorPartChrome オブジェクトのインスタンスを参照します。
EditorZoneBase クラスの多数のメソッドが、他のコントロールの編集処理用に特化されています。Close メソッドは、ページを編集表示モードから通常のブラウズ ビューに戻します。CreateEditorPartChrome メソッドは、ゾーンの各 EditorPart コントロールの周囲に表示されるクロム (境界線、動詞、アイコン、タイトルなどの周辺 UI 要素) を作成するためのものです。CreateEditorParts メソッドは抽象メソッドです。派生クラスはこのメソッドをオーバーライドして、ゾーンに含まれるすべての EditorPart コントロールのインスタンスを作成します。InvalidateEditorParts メソッドは、ゾーンの EditorPart コントロールのコレクションがプログラム上のなんらかの理由で変更された場合に、派生クラスによって呼び出されます。これにより、Web パーツ コントロール セットは EditorPart コントロールのコレクションを再作成して更新します。OnDisplayModeChanged メソッドは、表示モードが編集モードからブラウズ モードに戻った場合に、EditorPart コントロールのコレクションを null 参照 (Visual Basic では Nothing) に設定するために使用されます。最後に、OnSelectedWebPartChanged メソッドは、WebPart コントロールが編集モードを開始する場合、または終了する場合に、イベントを処理するために使用されます。たとえばこのメソッドを使用することにより、WebPart コントロールのプロパティ値と、関連付けられた EditorPart コントロールの編集可能な値を簡単に同期できます。
継承時の注意 ホストする EditorPart コントロールのカスタム ゾーンを開発する場合は、ゾーン テンプレート サポートを提供する必要があるかどうかを決定する必要があります。ゾーン テンプレートは、ITemplate インターフェイスを実装する型によって作成され、ページの開発者がカスタム ゾーンを使用して Web ページの宣言型マークアップのゾーン内で EditorPart コントロールを参照できるようにする場合に必要です。ゾーン テンプレート サポートが必要な場合、EditorZone クラスを継承する必要があります。 これに対して、カスタム ゾーンおよびその EditorPart コントロールが単体で使用できるようになっていて、ページの開発者がゾーン テンプレートで宣言的にコントロールを指定しなくても、これらがプログラムによって作成される場合は、EditorZoneBase クラスから直接継承できます。これを行うには、カスタム ゾーンが動作するように CreateEditorParts メソッドを実装することが重要です。
EditorZoneBase クラスを、宣言で使用する方法およびプログラムで使用する方法を示すいくつかのコード例を次に示します。このクラスは抽象型であるため、このコード例では、EditorZoneBase クラスを継承するプロパティおよびメソッドの例を示すために、Web パーツ コントロール セットに組み込まれている派生 EditorZone クラスを使用します。
ユーザー コントロールのソース コードは、別のトピックのものを使用しています。このコード例を実行するには、チュートリアル : Web パーツ ページでの表示モードの変更 のトピックに記載されているユーザー コントロールの .ascx ファイルを、このコード例に示されている .ascx ページと同じフォルダに配置する必要があります。
コード例の 2 番目の部分は、宣言による EditorZone コントロールへの参照が含まれる Web ページです。ページの上部は、ユーザー コントロールの Register ディレクティブです。ユーザー コントロールのタグは、<uc1:DisplayModeMenu> 要素を使用してページ内で宣言されます。<asp:WebPartZone> 要素の下には EditorPart コントロールを含んだ <asp:EditorZone> 要素があり、コントロールの外観および動作を決定するための各種のタグおよびプロパティ セットが存在します。ページのほとんどのコードでは、プログラムによる EditorZoneBase のプロパティとメソッドの使用法を示しています。
<%@ Page Language="vb" %> <%@ register tagprefix="uc1" tagname="DisplayModeMenuVB" src="displaymodevb.ascx" %> <%@ register tagprefix="aspSample" Namespace="Samples.AspNet.VB.Controls" %> <script runat="server"> Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) If EditorZone1.ApplyVerb.Enabled Then EditorZone1.ApplyVerb.Enabled = False Else EditorZone1.ApplyVerb.Enabled = True End If End Sub Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) If EditorZone1.CancelVerb.Enabled Then EditorZone1.CancelVerb.Enabled = False Else EditorZone1.CancelVerb.Enabled = True End If End Sub Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Label1.Text = "<br />" Dim part As EditorPart For Each part In EditorZone1.EditorParts Label1.Text += part.ID + "<br />" Next part End Sub Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs) If EditorZone1.OKVerb.Enabled Then EditorZone1.OKVerb.Enabled = False Else EditorZone1.OKVerb.Enabled = True End If End Sub </script> <html > <head id="Head1" runat="server"> <title>EditorZoneBase Examples</title> </head> <body> <form id="form1" runat="server"> <asp:WebPartManager ID="WebPartManager1" runat="server" /> <uc1:DisplayModeMenuVB runat="server" id="displaymodemenu1" /> <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> <asp:Calendar ID="Calendar1" Runat="server" Title="My Calendar" /> </ZoneTemplate> </asp:WebPartZone> <aspSample:MyEditorZone ID="EditorZone1" runat="server"> <ApplyVerb Text="Apply Changes" /> <CancelVerb Text="Cancel Changes" /> <OKVerb Text="Finished" /> <ZoneTemplate> <asp:AppearanceEditorPart ID="AppearanceEditorPart1" runat="server" /> <asp:LayoutEditorPart ID="LayoutEditorPart1" runat="server" /> </ZoneTemplate> </aspSample:MyEditorZone> <hr /> <asp:Button ID="Button1" runat="server" Width="200" Text="Toggle ApplyVerb Enabled" OnClick="Button1_Click" /> <br /> <asp:Button ID="Button2" runat="server" Width="200" Text="Toggle CancelVerb Enabled" OnClick="Button2_Click" /> <br /> <asp:Button ID="Button3" runat="server" Width="200" Text="Display EditorParts Collection" OnClick="Button3_Click" /> <asp:Label ID="Label1" runat="server" /> <br /> <asp:Button ID="Button4" runat="server" Width="200" Text="Toggle OKVerb Enabled" OnClick="Button4_Click" /> </form> </body> </html>
<%@ Page Language="C#" %> <%@ register tagprefix="uc1" tagname="DisplayModeMenuCS" src="displaymodecs.ascx" %> <%@ register tagprefix="aspSample" Namespace="Samples.AspNet.CS.Controls" %> <script runat="server"> void Button1_Click(object sender, EventArgs e) { if (EditorZone1.ApplyVerb.Enabled) EditorZone1.ApplyVerb.Enabled = false; else EditorZone1.ApplyVerb.Enabled = true; } void Button2_Click(object sender, EventArgs e) { if (EditorZone1.CancelVerb.Enabled) EditorZone1.CancelVerb.Enabled = false; else EditorZone1.CancelVerb.Enabled = true; } void Button3_Click(object sender, EventArgs e) { Label1.Text = "<br />"; foreach (EditorPart part in EditorZone1.EditorParts) { Label1.Text += part.ID + "<br />"; } } void Button4_Click(object sender, EventArgs e) { if (EditorZone1.OKVerb.Enabled) EditorZone1.OKVerb.Enabled = false; else EditorZone1.OKVerb.Enabled = true; } </script> <html > <head runat="server"> <title>EditorZoneBase Examples</title> </head> <body> <form id="form1" runat="server"> <asp:WebPartManager ID="WebPartManager1" runat="server" /> <uc1:DisplayModeMenuCS runat="server" id="displaymodemenu1" /> <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> <asp:Calendar ID="Calendar1" Runat="server" Title="My Calendar" /> </ZoneTemplate> </asp:WebPartZone> <aspSample:MyEditorZone ID="EditorZone1" runat="server"> <ApplyVerb Text="Apply Changes" /> <CancelVerb Text="Cancel Changes" /> <OKVerb Text="Finished" /> <ZoneTemplate> <asp:AppearanceEditorPart ID="AppearanceEditorPart1" runat="server" /> <asp:LayoutEditorPart ID="LayoutEditorPart1" runat="server" /> </ZoneTemplate> </aspSample:MyEditorZone> <hr /> <asp:Button ID="Button1" runat="server" Width="200" Text="Toggle ApplyVerb Enabled" OnClick="Button1_Click" /> <br /> <asp:Button ID="Button2" runat="server" Width="200" Text="Toggle CancelVerb Enabled" OnClick="Button2_Click" /> <br /> <asp:Button ID="Button3" runat="server" Width="200" Text="Display EditorParts Collection" OnClick="Button3_Click" /> <asp:Label ID="Label1" runat="server" /> <br /> <asp:Button ID="Button4" runat="server" Width="200" Text="Toggle OKVerb Enabled" OnClick="Button4_Click" /> </form> </body> </html>
コード例の 3 番目の部分は、多数の EditorZoneBase クラス メンバの使用方法を示すカスタム EditorZone クラスです。カスタム クラスは、Web ページの宣言型マークアップのゾーン テンプレートで使用できるよう、EditorZone から派生します。コード例を実行するためには、このソース コードをコンパイルする必要があります。それを明示的にコンパイルし、コンパイル済みのアセンブリを Web サイトの Bin フォルダまたはグローバル アセンブリ キャッシュに配置できます。サイトの App_Code フォルダにソース コードを配置し、実行時に動的にコンパイルすることもできます。このコード例では動的コンパイルを使用しているため、Web ページ上部の Register ディレクティブはアセンブリ ファイルを参照していないことに注意する必要があります。両方のコンパイル方法を示すチュートリアルについては、「チュートリアル : カスタム サーバー コントロールの開発と使用」を参照してください。
Imports System Imports System.Collections Imports System.ComponentModel Imports System.Drawing Imports System.Security.Permissions Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.WebControls.WebParts Namespace Samples.AspNet.VB.Controls <AspNetHostingPermission(SecurityAction.Demand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ <AspNetHostingPermission(SecurityAction.InheritanceDemand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ Public Class MyEditorZone Inherits EditorZone Public Sub New() End Sub Protected Overrides Sub OnDisplayModeChanged(ByVal sender _ As Object, ByVal e As WebPartDisplayModeEventArgs) Me.BackColor = Color.LightGray MyBase.OnDisplayModeChanged(sender, e) End Sub Protected Overrides Sub OnSelectedWebPartChanged(ByVal sender _ As Object, ByVal e As WebPartEventArgs) If Not (e.WebPart Is Nothing) Then e.WebPart.Zone.SelectedPartChromeStyle.BackColor = _ Color.LightGreen End If MyBase.OnSelectedWebPartChanged(sender, e) End Sub Protected Overrides Sub RenderBody(ByVal writer As _ HtmlTextWriter) writer.WriteLine("<hr />") MyBase.RenderBody(writer) End Sub Protected Overrides Sub RenderVerbs(ByVal writer As _ HtmlTextWriter) Dim verbs() As WebPartVerb = {OKVerb, CancelVerb, ApplyVerb} Dim verb As WebPartVerb For Each verb In verbs If Not (verb Is Nothing) Then verb.Text += " Verb" End If Next verb MyBase.RenderVerbs(writer) End Sub End Class End Namespace
using System; using System.Collections; using System.ComponentModel; using System.Drawing; 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 MyEditorZone : EditorZone { public MyEditorZone() { } protected override void OnDisplayModeChanged(object sender, WebPartDisplayModeEventArgs e) { this.BackColor = Color.LightGray; base.OnDisplayModeChanged(sender, e); } protected override void OnSelectedWebPartChanged(object sender, WebPartEventArgs e) { if (e.WebPart != null) e.WebPart.Zone.SelectedPartChromeStyle.BackColor = Color.LightGreen; base.OnSelectedWebPartChanged(sender, e); } protected override void RenderBody(HtmlTextWriter writer) { writer.WriteLine("<hr />"); base.RenderBody(writer); } protected override void RenderVerbs(HtmlTextWriter writer) { WebPartVerb[] verbs = new WebPartVerb[] { OKVerb, CancelVerb, ApplyVerb }; foreach (WebPartVerb verb in verbs) { if (verb != null) verb.Text += " Verb"; } base.RenderVerbs(writer); } } }
ブラウザでページを読み込む場合、ドロップダウン リストから [編集モード] を選択して、編集モードに切り替えることができます。2 つのコントロールのいずれかのタイトル バーで動詞メニュー (下向きの矢印) をクリックし、[編集] をクリックすることにより、コントロールを編集できます。編集 UI が表示されていれば、EditorZoneBase クラス メンバを宣言で使用した場合およびプログラムで使用した場合の結果が表示されます。


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.ToolZone
System.Web.UI.WebControls.WebParts.EditorZoneBase
System.Web.UI.WebControls.WebParts.EditorZone


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


EditorZoneBase コンストラクタ
アセンブリ: System.Web (system.web.dll 内)


継承クラスで呼び出されると、このコンストラクタは WebPartDisplayMode オブジェクトを WebPartManager コントロールに渡します。この結果、ページに編集ユーザー インターフェイス (UI) を表示できます。

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


EditorZoneBase プロパティ



関連項目
EditorZoneBase クラスSystem.Web.UI.WebControls.WebParts 名前空間
WebZone
WebPartZoneBase
CatalogZoneBase クラス
IWebEditable
その他の技術情報
チュートリアル : Web パーツ ページでの表示モードの変更ASP.NET Web パーツ ページ
EditorZoneBase メソッド



関連項目
EditorZoneBase クラスSystem.Web.UI.WebControls.WebParts 名前空間
WebZone
WebPartZoneBase
CatalogZoneBase クラス
IWebEditable
その他の技術情報
チュートリアル : Web パーツ ページでの表示モードの変更ASP.NET Web パーツ ページ
EditorZoneBase メンバ
EditorPart コントロールのコンテナとして動作するすべてのゾーン コントロールの基本クラスとして機能します。
EditorZoneBase データ型で公開されるメンバを以下の表に示します。






名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。(Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。(Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。(Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。(Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。(Control から継承されます。) |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。(Control から継承されます。) |

関連項目
EditorZoneBase クラスSystem.Web.UI.WebControls.WebParts 名前空間
WebZone
WebPartZoneBase
CatalogZoneBase クラス
IWebEditable
その他の技術情報
チュートリアル : Web パーツ ページでの表示モードの変更ASP.NET Web パーツ ページ
- EditorZoneBaseのページへのリンク