WebPartZoneBase.CreateVerbs イベントとは? わかりやすく解説

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

WebPartZoneBase.CreateVerbs イベント

メモ : このイベントは、.NET Framework version 2.0 で新しく追加されたものです。

WebPartZoneBase クラスから派生するゾーンに対して動詞が作成される場合に発生します。

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

Public Event CreateVerbs As
 WebPartVerbsEventHandler
Dim instance As WebPartZoneBase
Dim handler As WebPartVerbsEventHandler

AddHandler instance.CreateVerbs, handler
public event WebPartVerbsEventHandler CreateVerbs
public:
event WebPartVerbsEventHandler^ CreateVerbs {
    void add (WebPartVerbsEventHandler^ value);
    void remove (WebPartVerbsEventHandler^ value);
}
/** @event */
public void add_CreateVerbs (WebPartVerbsEventHandler
 value)

/** @event */
public void remove_CreateVerbs (WebPartVerbsEventHandler
 value)
JScript では、イベントは使用できますが、新規に宣言することはできません。
解説解説

ページ開発者は、このイベントにハンドラを追加し、他のカスタム動詞を WebPartZoneBase 子ゾーンに割り当てることができます。

CreateVerbs イベントは、ゾーンに対して動詞が作成されるときに発生します。これが発生するのは、ページ処理の PreRender 段階、またはポストバック イベント中です。

使用例使用例

OnCreateVerbs メソッドをオーバーライドしてカスタム動詞を派生 WebPartZoneBase ゾーンに追加することによって、CreateVerbs イベントのハンドラを作成する方法を次のコード例に示します。

コード例には、2 つのソース ファイルが含まれます。コード例を実行するためには、このソース コードをコンパイルする必要があります。それを明示的にコンパイルし、コンパイル済みのアセンブリを Web サイトの Bin フォルダまたはグローバル アセンブリ キャッシュに配置できます。サイトの App_Code フォルダにソース コードを配置し、実行時に動的にコンパイルすることもできます。このコード例は、動的コンパイルを使用します。コンパイル方法を示すチュートリアルについては、「チュートリアル : カスタム サーバー コントロールの開発と使用」を参照してください。

コード例の最初の部分は、WebPart クラスから派生した単純なコントロールのソース コードです。

Imports System
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Collections.Generic
Imports System.Security.Permissions
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls

' This code snippet creates a simple Web Part control.
Namespace Samples.AspNet.VB.Controls

  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Public Class SimpleControl
    Inherits System.Web.UI.WebControls.WebParts.WebPart

    Private _text As String
 = "Simple control text"

    Public Property [Text]() As
 String
      Get
        If Not (_text Is
 Nothing) Then
          Return _text
        Else
          Return String.Empty
        End If
      End Get
      Set(ByVal value As
 String)
        _text = value
      End Set
    End Property

    Protected Overrides Sub
 Render(ByVal writer _
      As System.Web.UI.HtmlTextWriter)

      writer.Write(Me.Text)

    End Sub

  End Class

End Namespace
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Security.Permissions;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace Samples.AspNet.CS.Controls
{

    // This code snippet creates a simple Web Part control.
     [AspNetHostingPermission(SecurityAction.Demand,
      Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand,
      Level = AspNetHostingPermissionLevel.Minimal)]
    public class SimpleControl : WebPart
    {

        private String _text = "Simple control text";

        public string Text
        {
            get
            {
                if (_text != null)
                    return _text;
                else
                    return string.Empty;
            }
            set { _text = value; }
        }

        protected override void Render(System.Web.UI.HtmlTextWriter
 
      writer)
        {
            writer.Write(this.Text);
        }
    }
}

コード例の 2 つ目の部分は、OnCreateVerbs メソッドをオーバーライドしてカスタム動詞をゾーンに追加する、派生 WebPartZoneBase ゾーンのソース コードです。コードでは、ゾーンに含まれる WebPart コントロールの動詞メニューに表示されるカスタム動詞も作成されます。動詞は、現在の WebPart コントロールの別のコピーを作成します。

Imports System
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Security.Permissions
Imports System.Collections.Generic
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls

' This code sample creates a Web Part zone and adds the 
' "Copy Web Part" verb to any control in the zone.
Namespace Samples.AspNet.VB.Controls

  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Public Class ZoneWithAddedVerb
    Inherits WebPartZone

    'public class ExtendedWebPartZoneBase 
    Protected Overrides Sub
 OnCreateVerbs(ByVal e _
      As WebPartVerbsEventArgs)

      Dim newVerbs As List(Of
 WebPartVerb) = _
        New List(Of WebPartVerb)
      newVerbs.Add(New CopyWebPartVerb(AddressOf
 CopyWebPartToNewOne))
      e.Verbs = New WebPartVerbCollection(e.Verbs, newVerbs)
      MyBase.OnCreateVerbs(e)

    End Sub 'OnCreateVerbs


    Sub CopyWebPartToNewOne(ByVal sender As
 Object, _
      ByVal e As WebPartEventArgs)

      Dim wpmgr As WebPartManager = _
        WebPartManager.GetCurrentWebPartManager(Page)
      Dim wp As System.Web.UI.WebControls.WebParts.WebPart
      Dim tp As Type = e.WebPart.GetType()
      wp = CType(Activator.CreateInstance(tp), _
        System.Web.UI.WebControls.WebParts.WebPart)
      wpmgr.AddWebPart(wp, e.WebPart.Zone, e.WebPart.ZoneIndex + 1)

    End Sub

  End Class


  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Friend Class CopyWebPartVerb
    Inherits WebPartVerb
    Private Const _copyWebPartImageUrl As
 String = "~/CopyVerb.ico"

    Friend Sub New(ByVal
 serverClickHandler As WebPartEventHandler)
      MyBase.New("MyVerb", serverClickHandler)

    End Sub 'New

    Public Overrides Property
 [Text]() As String
      Get
        Return "Copy Web Part"
      End Get
      Set(ByVal value As
 String)
      End Set
    End Property

    Public Overrides Property
 Description() As String
      Get
        Return "This verb will copy this web
 part control to a " _
               & "new one below"
      End Get
      Set(ByVal value As
 String)
      End Set
    End Property

    Public Overrides Property
 Enabled() As Boolean
      Get
        Return MyBase.Enabled
      End Get
      Set(ByVal value As
 Boolean)
        MyBase.Enabled = value
      End Set
    End Property
    
    Public Overrides Property
 ImageUrl() As String
      Get
        Return Me._copyWebPartImageUrl
      End Get
      Set(ByVal value As
 String)
      End Set
    End Property

  End Class

End Namespace
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Security.Permissions;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace Samples.AspNet.CS.Controls
{
/* 
This code sample creates a Web Part zone and adds the 
"Copy Web Part" verb to any control in the zone.
*/
[AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
public class ZoneWithAddedVerb : WebPartZone
{

  protected override void OnCreateVerbs(WebPartVerbsEventArgs
 e)
  {
    List<WebPartVerb> newVerbs = new List<WebPartVerb>();
    newVerbs.Add(new CopyWebPartVerb(CopyWebPartToNewOne));
    e.Verbs = new WebPartVerbCollection(e.Verbs,newVerbs);
    base.OnCreateVerbs(e);
  }

  void CopyWebPartToNewOne(object sender, WebPartEventArgs e)
  {
    WebPartManager wpmgr = 
      WebPartManager.GetCurrentWebPartManager(Page);
    System.Web.UI.WebControls.WebParts.WebPart wp;
    Type tp = e.WebPart.GetType(); 
    wp = (System.Web.UI.WebControls.WebParts.WebPart)Activator.CreateInstance(tp);
   
    wpmgr.AddWebPart(wp, e.WebPart.Zone, e.WebPart.ZoneIndex + 1);
  }
}
  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  internal class CopyWebPartVerb : WebPartVerb
  {
    private const String _copyWebPartImageUrl
 = "~/CopyVerb.ico";

    internal CopyWebPartVerb(WebPartEventHandler serverClickHandler) :  
       base("MyVerb", serverClickHandler)
    { }
    public override string Text
    {
      get { return "Copy Web Part";
 }
      set { ;}
    }
    public override string Description
    {
      get { return "This verb will copy
 this web part control " +
        "to a new one below"; }
      set { ; }
    }
    public override bool Enabled
    {
      get { return base.Enabled;
 }
      set { base.Enabled = value; }
    }
    
    public override string ImageUrl
    {
      get { return _copyWebPartImageUrl; }
      set { ; }
    }
  }
}

コード例の 3 つ目の部分は、派生ゾーンおよび WebPart コントロールをホストする Web ページです。ページの先頭付近にあるのは、派生ゾーン コンポーネントを参照する Register ディレクティブです。ブラウザにページを読み込むと、ゾーンに WebPart コントロールが表示されます。動詞メニューをクリックし、[CopyWebPart] 動詞をクリックすると、コントロールのコピーが作成されます。

<%@ Page Language="VB" %>
<%@ Register TagPrefix="verbsample" 
    namespace="Samples.AspNet.VB.Controls"
 %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html  >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:WebPartManager ID="WebPartManager1" runat="server"
 />
    <verbsample:ZoneWithAddedVerb id="ZoneWithAddedVerb1"
 
      HeaderText="Zone with Added Verb" runat="server">
        <ZoneTemplate>
           <verbsample:SimpleControl id="SimpleControl1"
 
            title="Simple Control" runat="server"
 /> 
        </ZoneTemplate>
        </verbsample:ZoneWithAddedVerb>
     </form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ Register TagPrefix="verbsample" 
    namespace="Samples.AspNet.CS.Controls" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html  >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:WebPartManager ID="WebPartManager1" runat="server"
 />
    <verbsample:ZoneWithAddedVerb id="ZoneWithAddedVerb1" 
      HeaderText="Zone with Added Verb" runat="server">
        <ZoneTemplate>
           <verbsample:SimpleControl id="SimpleControl1" 
            title="Simple Control" runat="server" /> 
        </ZoneTemplate>
        </verbsample:ZoneWithAddedVerb>
     </form>
</body>
</html>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
WebPartZoneBase クラス
WebPartZoneBase メンバ
System.Web.UI.WebControls.WebParts 名前空間
WebPartVerbsEventHandler デリゲート
その他の技術情報
ASP.NET Web パーツ ページ



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

「WebPartZoneBase.CreateVerbs イベント」の関連用語

WebPartZoneBase.CreateVerbs イベントのお隣キーワード
検索ランキング

   

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



WebPartZoneBase.CreateVerbs イベントのページの著作権

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

©2026 GRAS Group, Inc.RSS