PropertyGridEditorPart イベント

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

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


PropertyGridEditorPart は、ユーザーが、WebPart のカスタム プロパティや WebPartZoneBase ゾーンに配置されるサーバー コントロールのカスタム プロパティを編集できるようにする汎用のユーザー インターフェイス (UI: User Interface) を提供します。これに対して、AppearanceEditorPart コントロールや BehaviorEditorPart コントロールなどの他の EditorPart コントロールでは、WebPart クラスの既存の UI 用のプロパティしか編集できません。
Web パーツ コントロール セットには、ツール用のゾーンが存在しますが、ツール用のパーツ コントロールも存在します。ツール用のパーツ コントロールは、それぞれ対応する種類のツール ゾーンに配置する必要があります (Web パーツ コントロール セットの詳細については、ToolZone クラスの概要のトピックを参照してください)。Web パーツ コントロール セットに含まれるこれらの種類のコントロールには、2 つの特徴があります。
PropertyGridEditorPart コントロールは特殊なコントロールで、Web ページが編集モードの場合や、特定の WebPart またはサーバー コントロールがユーザーによって編集対象として選択されている場合にだけ表示されます。PropertyGridEditorPart コントロールは、他のすべての EditorPart コントロールと同様にページ上の EditorZone ゾーンに配置する必要があります。
![]() |
---|
EditorZone ゾーンには、EditorPart コントロールしか格納できません。また、EditorPart コントロールは、これ以外の種類のゾーンには配置できません。 |
PropertyGridEditorPart コントロールは、ソース コード中で WebBrowsableAttribute クラスの WebBrowsable 属性によってマークされるプロパティの編集 UI を提供します。プロパティがこの属性によってマークされると、PropertyGridEditorPart コントロールは、プロパティの型に基づいて編集 UI を作成し、必要に応じて PropertyDescriptor オブジェクトを使用して、各編集コントロール内の値をプロパティの型に変換します。また、PropertyGridEditorPart コントロールでの編集 UI の表示に役立つ他の属性を追加することもできます。WebDisplayNameAttribute クラスの WebDisplayName 属性によって、編集 UI の各コントロールに表示されるラベルのテキストを指定できます。WebDescriptionAttribute クラスの WebDescription 属性によって、編集 UI の各コントロールのツールヒントとして表示される文字列を指定できます。
さまざまな型のプロパティを編集するために作成されるコントロールを次の表に示します。
プロパティの型 | |
---|---|
DropDownList (列挙値のリストを格納) | |
PropertyGridEditorPart クラスには、コントロールに表示されるタイトル テキストを取得または設定するために使用される Title プロパティがあります。また、ページが編集モードになったときにコントロールを表示するかどうかを決定するプロテクト Display プロパティも存在します。
また、PropertyGridEditorPart クラスには、EditorPart クラスから継承してオーバーライドした ApplyChanges および SyncChanges の 2 つの重要なメソッドもあります。これらのメソッドは、エディタ コントロールのフィールド値と編集中の WebPart コントロールのプロパティとの間でプロパティ値を取得および設定できるようにするため、重要です。
PropertyGridEditorPart コントロールはカスタムのプロパティしか編集できないため、WebPart コントロールの外観、レイアウト、および動作を編集するためには、Web パーツ コントロール セットの他の EditorPart コントロールが必要です。他のコントロールには、BehaviorEditorPart、LayoutEditorPart、および AppearanceEditorPart の各コントロールなどがあります。これらの EditorPart コントロールには、WebPart コントロールを編集するために必要なほとんどの編集機能が用意されていますが、必要に応じて、EditorPart クラスを継承してカスタムのエディタ コントロールを作成することもできます。コード例については、EditorPart クラスの概要のトピックを参照してください。
![]() |
---|
ユーザーの操作性を向上するために、<fieldset> 要素内に PropertyGridEditorPart コントロールが出力されます。<fieldset> 要素は、PropertyGridEditorPart コントロールで編集のために使用される関連のあるコントロールのセットをグループ化します。これによって、ビジュアルなユーザー エージェント (一般の Web ブラウザなど) と音声処理関連のユーザー エージェント (画面読み上げソフトウェアなど) の両方で、これらのコントロール間をタブによって簡単に移動できるようになります。 |
ユーザー補助

Web ページに PropertyGridEditorPart コントロールを宣言し、そのコントロールによって WebPart コントロールのいくつかの UI のプロパティを編集できるようにする方法を、次のコード例に示します。コード例は、次の 4 つの部分から成ります。
ユーザー コントロールのソース コードは、別のトピックのものを使用しています。このコード例を実行するには、チュートリアル : Web パーツ ページでの表示モードの変更 のトピックに記載されているユーザー コントロールの .ascx ファイルを、このコード例に示されている .ascx ページと同じフォルダに配置する必要があります。
コード例の 2 番目の部分は Web ページです。ここには、EditorZone コントロールへの宣言的な参照と共に、PropertyGridEditorPart コントロールへの宣言的な参照を含む子 <zonetemplate> 要素が含まれます。このページは、アセンブリの Register ディレクティブとコントロールの <aspSample:UserInfoWebPart> 要素を使用して、カスタムの WebPart コントロールを参照します。
<%@ page language="VB" %> <%@ register TagPrefix="uc1" TagName="DisplayModeMenuVB" Src="DisplayModeMenuVB.ascx" %> <%@ register tagprefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="UserInfoWebPartVB" %> <script runat="server"> Protected Sub Page_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Button1.Visible = False TextBox1.Visible = False End Sub Shared editControlTitle As String Protected Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) editControlTitle = Server.HtmlEncode(TextBox1.Text) PropertyGridEditorPart1.Title = editControlTitle End Sub Protected Sub PropertyGridEditorPart1_Init(ByVal _ sender As Object, ByVal e As System.EventArgs) If Not editControlTitle Is Nothing Then PropertyGridEditorPart1.Title = editControlTitle End If End Sub Protected Sub PropertyGridEditorPart1_PreRender(ByVal _ sender As Object, ByVal e As System.EventArgs) Button1.Visible = True TextBox1.Visible = True End Sub </script> <html> <head id="Head1" runat="server"> <title> User Information WebPart with EditorPart </title> </head> <body> <form id="form1" runat="server"> <asp:webpartmanager id="WebPartManager1" runat="server" /> <uc1:DisplayModeMenuVB ID="DisplayModeMenu1" runat="server" /> <asp:webpartzone id="zone1" runat="server" > <PartTitleStyle BorderWidth=1 Font-Names="Verdana, Arial" Font-Size="110%" BackColor="LightBlue" /> <zonetemplate> <aspSample:UserInfoWebPart runat="server" id="userinfo" title = "User Information WebPart" BackColor="Beige" /> </zonetemplate> </asp:webpartzone> <div> <hr /> <asp:Button ID="Button1" runat="server" Text="Update EditorPart Title" OnClick="Button1_Click" /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </div> <asp:EditorZone ID="EditorZone1" runat="server"> <ZoneTemplate> <asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" runat="server" Title="Edit Custom Properties" OnPreRender="PropertyGridEditorPart1_PreRender" OnInit="PropertyGridEditorPart1_Init" /> </ZoneTemplate> </asp:EditorZone> </form> </body> </html>
<%@ page language="c#" %> <%@ register TagPrefix="uc1" TagName="DisplayModeMenuCS" Src="DisplayModeMenuCS.ascx" %> <%@ register tagprefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="UserInfoWebPartCS" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { Button1.Visible = false; TextBox1.Visible = false; } private static String editControlTitle; protected void Button1_Click(object sender, EventArgs e) { editControlTitle = Server.HtmlEncode(TextBox1.Text); PropertyGridEditorPart1.Title = editControlTitle; } protected void PropertyGridEditorPart1_Init(object sender, EventArgs e) { if (editControlTitle != null) PropertyGridEditorPart1.Title = editControlTitle; } protected void PropertyGridEditorPart1_PreRender(object sender, EventArgs e) { Button1.Visible = true; TextBox1.Visible = true; } </script> <html> <head runat="server"> <title> User Information WebPart with EditorPart </title> </head> <body> <form id="form1" runat="server"> <asp:webpartmanager id="WebPartManager1" runat="server" /> <uc1:DisplayModeMenuCS ID="DisplayModeMenu1" runat="server" /> <asp:webpartzone id="zone1" runat="server" > <PartTitleStyle BorderWidth=1 Font-Names="Verdana, Arial" Font-Size="110%" BackColor="LightBlue" /> <zonetemplate> <aspSample:UserInfoWebPart runat="server" id="userinfo" title = "User Information WebPart" BackColor="Beige" /> </zonetemplate> </asp:webpartzone> <div> <hr /> <asp:Button ID="Button1" runat="server" Text="Update EditorPart Title" OnClick="Button1_Click" /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </div> <asp:EditorZone ID="EditorZone1" runat="server"> <ZoneTemplate> <asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" runat="server" Title="Edit Custom Properties" OnPreRender="PropertyGridEditorPart1_PreRender" OnInit="PropertyGridEditorPart1_Init" /> </ZoneTemplate> </asp:EditorZone> </form> </body> </html>
コード例の 3 番目の部分は、Web ページで参照される UserInfoWebPart という名前のカスタム WebPart クラスです。ユーザーに関する情報が含まれたさまざまなプロパティは、すべて WebBrowsable 属性でマークされます。これにより、PropertyGridEditorPart コントロールは、これらのプロパティを編集するための UI を提供できるようになります。プロパティは、編集 UI 内の各コントロールの横に表示されるラベルのテキストを指定するために、WebDisplayName 属性でマークされることもあります。
コード例を実行するためには、このソース コードをコンパイルする必要があります。それを明示的にコンパイルし、コンパイル済みのアセンブリを Web サイトの Bin フォルダまたはグローバル アセンブリ キャッシュに配置できます。サイトの App_Code フォルダにソース コードを配置し、実行時に動的にコンパイルすることもできます。コンパイル方法を示すチュートリアルについては、「チュートリアル : カスタム サーバー コントロールの開発と使用」を参照してください。
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 UserInfoWebPart Inherits WebPart Private server As HttpServerUtility = HttpContext.Current.Server Private _userNickName As String = "Add a nickname." Private _userPetName As String = "Add a pet name." Private _userSpecialDate As DateTime = DateTime.Now Private _userIsCurrent As [Boolean] = True Private _userJobType As JobTypeName = JobTypeName.Unselected Public Enum JobTypeName Unselected = 0 Support = 1 Service = 2 Professional = 3 Technical = 4 Manager = 5 Executive = 6 End Enum Private NickNameLabel As Label Private PetNickNameLabel As Label Private SpecialDateLabel As Label Private IsCurrentCheckBox As CheckBox Private JobTypeLabel As Label ' Add the Personalizable and WebBrowsable attributes to the ' public properties, so that users can save property values ' and edit them with a PropertyGridEditorPart control. <Personalizable(), WebBrowsable(), WebDisplayName("Nickname")> _ Public Property NickName() As String Get Dim o As Object = ViewState("NickName") If Not (o Is Nothing) Then Return CStr(o) Else Return _userNickName End If End Get Set(ByVal value As String) _userNickName = server.HtmlEncode(value) End Set End Property <Personalizable(), WebBrowsable(), WebDisplayName("Pet Name")> _ Public Property PetName() As String Get Dim o As Object = ViewState("PetName") If Not (o Is Nothing) Then Return CStr(o) Else Return _userPetName End If End Get Set(ByVal value As String) _userPetName = server.HtmlEncode(value) End Set End Property <Personalizable(), WebBrowsable(), WebDisplayName("Special Day")> _ Public Property SpecialDay() As DateTime Get Dim o As Object = ViewState("SpecialDay") If Not (o Is Nothing) Then Return CType(o, DateTime) Else Return _userSpecialDate End If End Get Set(ByVal value As DateTime) _userSpecialDate = value End Set End Property <Personalizable(), WebBrowsable(), WebDisplayName("Job Type"), _ WebDescription("Select the category that corresponds to your job.")> _ Public Property UserJobType() As JobTypeName Get Dim o As Object = ViewState("UserJobType") If Not (o Is Nothing) Then Return CType(o, JobTypeName) Else Return _userJobType End If End Get Set(ByVal value As JobTypeName) _userJobType = CType(value, JobTypeName) End Set End Property <Personalizable(), WebBrowsable(), WebDisplayName("Is Current")> _ Public Property IsCurrent() As [Boolean] Get Dim o As Object = ViewState("IsCurrent") If Not (o Is Nothing) Then Return CType(o, [Boolean]) Else Return _userIsCurrent End If End Get Set(ByVal value As [Boolean]) _userIsCurrent = value End Set End Property Protected Overrides Sub CreateChildControls() Controls.Clear() NickNameLabel = New Label() NickNameLabel.Text = Me.NickName SetControlAttributes(NickNameLabel) PetNickNameLabel = New Label() PetNickNameLabel.Text = Me.PetName SetControlAttributes(PetNickNameLabel) SpecialDateLabel = New Label() SpecialDateLabel.Text = Me.SpecialDay.ToShortDateString() SetControlAttributes(SpecialDateLabel) IsCurrentCheckBox = New CheckBox() IsCurrentCheckBox.Checked = Me.IsCurrent SetControlAttributes(IsCurrentCheckBox) JobTypeLabel = New Label() JobTypeLabel.Text = Me.UserJobType.ToString() SetControlAttributes(JobTypeLabel) ChildControlsCreated = True End Sub Private Sub SetControlAttributes(ByVal ctl As WebControl) ctl.BackColor = Color.White ctl.BorderWidth = 1 ctl.Width = 200 Me.Controls.Add(ctl) End Sub Protected Overrides Sub RenderContents(ByVal writer As HtmlTextWriter) writer.Write("Nickname:") writer.WriteBreak() NickNameLabel.RenderControl(writer) writer.WriteBreak() writer.Write("Pet Name:") writer.WriteBreak() PetNickNameLabel.RenderControl(writer) writer.WriteBreak() writer.Write("Special Date:") writer.WriteBreak() SpecialDateLabel.RenderControl(writer) writer.WriteBreak() writer.Write("Job Type:") writer.WriteBreak() JobTypeLabel.RenderControl(writer) writer.WriteBreak() writer.Write("Current:") writer.WriteBreak() IsCurrentCheckBox.RenderControl(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 UserInfoWebPart : WebPart { HttpServerUtility server = HttpContext.Current.Server; private String _userNickName = "Add a nickname."; private String _userPetName = "Add a pet name."; private DateTime _userSpecialDate = DateTime.Now; private Boolean _userIsCurrent = true; private JobTypeName _userJobType = JobTypeName.Unselected; public enum JobTypeName { Unselected = 0, Support = 1, Service = 2, Professional = 3, Technical = 4, Manager = 5, Executive = 6 } Label NickNameLabel; Label PetNickNameLabel; Label SpecialDateLabel; CheckBox IsCurrentCheckBox; Label JobTypeLabel; // Add the Personalizable and WebBrowsable attributes to the // public properties, so that users can save property values // and edit them with a PropertyGridEditorPart control. [Personalizable(), WebBrowsable, WebDisplayName("Nickname")] public String NickName { get { object o = ViewState["NickName"]; if (o != null) return (string)o; else return _userNickName; } set { _userNickName = server.HtmlEncode(value); } } [Personalizable(), WebBrowsable, WebDisplayName("Pet Name")] public String PetName { get { object o = ViewState["PetName"]; if (o != null) return (string)o; else return _userPetName; } set { _userPetName = server.HtmlEncode(value); } } [Personalizable(), WebBrowsable(), WebDisplayName("Special Day")] public DateTime SpecialDay { get { object o = ViewState["SpecialDay"]; if (o != null) return (DateTime)o; else return _userSpecialDate; } set { _userSpecialDate = value; } } [Personalizable(), WebBrowsable(), WebDisplayName("Job Type"), WebDescription("Select the category that corresponds to your job.")] public JobTypeName UserJobType { get { object o = ViewState["UserJobType"]; if (o != null) return (JobTypeName)o; else return _userJobType; } set { _userJobType = (JobTypeName)value; } } [Personalizable(), WebBrowsable(), WebDisplayName("Is Current")] public Boolean IsCurrent { get { object o = ViewState["IsCurrent"]; if (o != null) return (Boolean)o; else return _userIsCurrent; } set { _userIsCurrent = value; } } protected override void CreateChildControls() { Controls.Clear(); NickNameLabel = new Label(); NickNameLabel.Text = this.NickName; SetControlAttributes(NickNameLabel); PetNickNameLabel = new Label(); PetNickNameLabel.Text = this.PetName; SetControlAttributes(PetNickNameLabel); SpecialDateLabel = new Label(); SpecialDateLabel.Text = this.SpecialDay.ToShortDateString(); SetControlAttributes(SpecialDateLabel); IsCurrentCheckBox = new CheckBox(); IsCurrentCheckBox.Checked = this.IsCurrent; SetControlAttributes(IsCurrentCheckBox); JobTypeLabel = new Label(); JobTypeLabel.Text = this.UserJobType.ToString(); SetControlAttributes(JobTypeLabel); ChildControlsCreated = true; } private void SetControlAttributes(WebControl ctl) { ctl.BackColor = Color.White; ctl.BorderWidth = 1; ctl.Width = 200; this.Controls.Add(ctl); } protected override void RenderContents(HtmlTextWriter writer) { writer.Write("Nickname:"); writer.WriteBreak(); NickNameLabel.RenderControl(writer); writer.WriteBreak(); writer.Write("Pet Name:"); writer.WriteBreak(); PetNickNameLabel.RenderControl(writer); writer.WriteBreak(); writer.Write("Special Date:"); writer.WriteBreak(); SpecialDateLabel.RenderControl(writer); writer.WriteBreak(); writer.Write("Job Type:"); writer.WriteBreak(); JobTypeLabel.RenderControl(writer); writer.WriteBreak(); writer.Write("Current:"); writer.WriteBreak(); IsCurrentCheckBox.RenderControl(writer); } } }
ブラウザでページを読み込む場合、[Display Mode] ドロップダウン リスト コントロールで [編集モード] を選択して、編集モードに切り替えます。User Information WebPart コントロールのタイトル バーで動詞メニュー (下向きの矢印) をクリックし、[編集] をクリックすることにより、コントロールを編集できます。編集 UI が表示状態の場合、PropertyGridEditorPart コントロールが表示されます。このコントロールは、プロパティの型に基づいて UserInfoWebPart クラスの各プロパティに表示されます。編集 UI で変更を行って [Apply] ボタンをクリックした場合、[Display Mode] ドロップダウン リストを使用してページをブラウズ モードに戻し、編集作業で変更したすべての結果を確認できます。


System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.Panel
System.Web.UI.WebControls.WebParts.Part
System.Web.UI.WebControls.WebParts.EditorPart
System.Web.UI.WebControls.WebParts.PropertyGridEditorPart


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


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


PropertyGridEditorPart コンストラクタは既定です。PropertyGridEditorPart クラスで宣言されるコンストラクタは存在しないため、クラスの新しいインスタンスを作成する場合に特別な作業は不要です。

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


PropertyGridEditorPart プロパティ


PropertyGridEditorPart メソッド


名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

PropertyGridEditorPart メンバ
関連付けられた WebPart またはサーバー コントロールのカスタム プロパティをエンド ユーザーが編集できるようにするエディタ コントロールを提供します。このクラスは継承できません。
PropertyGridEditorPart データ型で公開されるメンバを以下の表に示します。




名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

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

Weblioに収録されているすべての辞書からPropertyGridEditorPartを検索する場合は、下記のリンクをクリックしてください。

- PropertyGridEditorPartのページへのリンク