PropertyGridEditorPart クラスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > PropertyGridEditorPart クラスの意味・解説 

PropertyGridEditorPart クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

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

名前空間: System.Web.UI.WebControls.WebParts
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public NotInheritable Class
 PropertyGridEditorPart
    Inherits EditorPart
Dim instance As PropertyGridEditorPart
public sealed class PropertyGridEditorPart
 : EditorPart
public ref class PropertyGridEditorPart sealed
 : public EditorPart
public final class PropertyGridEditorPart extends
 EditorPart
public final class PropertyGridEditorPart extends
 EditorPart
解説解説

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 の各コントロールツールヒントとして表示される文字列指定できます

さまざまな型プロパティ編集するために作成されるコントロール次の表に示します

PropertyGridEditorPart クラスには、コントロール表示されるタイトル テキスト取得または設定するために使用される Title プロパティありますまた、ページ編集モードになったときにコントロール表示するかどうか決定するプロテクト Display プロパティ存在します

また、PropertyGridEditorPart クラスには、EditorPart クラスから継承してオーバーライドした ApplyChanges および SyncChanges の 2 つ重要なメソッドあります。これらのメソッドは、エディタ コントロールフィールド値と編集中の WebPart コントロールプロパティとの間でプロパティ値を取得および設定できるようにするため、重要です。

PropertyGridEditorPart コントロールカスタムプロパティしか編集できないため、WebPart コントロール外観レイアウト、および動作編集するためには、Web パーツ コントロール セットの他の EditorPart コントロールが必要です。他のコントロールには、BehaviorEditorPart、LayoutEditorPart、および AppearanceEditorPart の各コントロールなどがあります。これらの EditorPart コントロールには、WebPart コントロール編集するために必要なほとんどの編集機能用意されていますが、必要に応じてEditorPart クラス継承してカスタムエディタ コントロール作成することもできますコード例については、EditorPart クラス概要トピック参照してください

ユーザー補助

使用例使用例

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] ドロップダウン リスト使用してページブラウズ モード戻し編集作業変更したすべての結果確認できます

.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
   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
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
PropertyGridEditorPart メンバ
System.Web.UI.WebControls.WebParts 名前空間
BehaviorEditorPart クラス
LayoutEditorPart クラス
AppearanceEditorPart クラス
その他の技術情報
ASP.NET Web パーツ ページ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「PropertyGridEditorPart クラス」の関連用語

PropertyGridEditorPart クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



PropertyGridEditorPart クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS