WebPartZoneBase.OnCreateVerbs メソッド
アセンブリ: System.Web (system.web.dll 内)

Dim e As WebPartVerbsEventArgs Me.OnCreateVerbs(e)

派生 WebPartZoneBase ゾーン クラスの OnCreateVerbs メソッドをオーバーライドして、他の WebPartVerb オブジェクトをゾーンの標準動詞のコレクションに追加できます。このためには、Verbs プロパティのコレクションに動詞を追加します。

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>

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


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

- WebPartZoneBase.OnCreateVerbs メソッドのページへのリンク