IWebActionableとは? わかりやすく解説

IWebActionable インターフェイス

メモ : このインターフェイスは、.NET Framework version 2.0 で新しく追加されたものです。

WebPart コントロールまたは他のサーバー コントロールに、動詞のコレクションを格納できるようにします。

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

Dim instance As IWebActionable
public interface IWebActionable
public interface class IWebActionable
public interface IWebActionable
public interface IWebActionable
解説解説

Web パーツ コントロール セットの動詞とは、ユーザーがユーザー インターフェイス (UI) で実行できるアクションです。通常、動詞は、UI で、ボタン、リンク、またはメニュー項目などのクリック可能コントロールによって表されます。Web パーツ コントロール セットには、WebPart コントロール、および WebPartZoneBase ゾーン内に配置されたときに WebPart コントロールのように動作することができる他のサーバー コントロール (カスタム コントロール、ASP.NET コントロール、ユーザー コントロールなど) が既定で使用できる標準の動詞が用意されています。標準の動詞には、close、minimize、restore、delete、edit、export などがあります。

また、WebPart コントロールやサーバー コントロールで使用するカスタム動詞を作成することもできます。開発者がカスタム動詞をコントロールに統合できるように、Verbs プロパティを持つ IWebActionable インターフェイスがあります。WebPart クラスは、IWebActionable インターフェイスを実装し、そのインターフェイスの唯一のプロパティをオーバーライドします。WebPart クラスから継承されるコントロールにカスタムの動詞を追加するには、WebPart.Verbs プロパティをオーバーライドし、カスタム動詞をコレクションに追加して、そのコレクションを返す必要があります。WebPart.Verbs プロパティから参照されるコレクションには、カスタム動詞だけが含まれることに注意してください。このコレクションには、標準の動詞は含まれません。このコレクションには既定でカスタム動詞がないため、WebPart コントロールの WebPart.Verbs プロパティの既定の戻り値は、null 参照 (Visual Basic では Nothing) です。

WebPart コントロールではないサーバー コントロールにカスタム動詞を追加するには、もう 1 つ手順が必要です。これらのサーバー コントロールでは、Verbs プロパティをオーバーライドしてカスタム動詞をコレクションに追加するだけでなく、IWebActionable インターフェイスも実装する必要があります。

WebPart またはサーバー コントロール上の Verbs コレクションにカスタム動詞を追加すると、カスタム動詞の作成と表示に必要な他のステップが Web パーツ コントロール セットによって自動的に処理されます。

使用例使用例

IWebActionable インターフェイスの簡単な実装を次のコード例に示します。

このコード例の最初の部分は、ユーザー コントロールでインターフェイスを実装する方法を示しています。このユーザー コントロールは、2 つのカスタム動詞を作成し、ユーザーがいずれかの動詞をクリックしたときに実行されるメソッドを定義することによって、Verbs プロパティを実装しています。説明を簡略化するために、同じメソッドを使用しています。このメソッドは、VerbCounterClicks という名前のプロパティの値を更新します。また、Page_Load メソッドのコードは、コントロールの Verbs プロパティにアクセスして、コレクション内のカスタム動詞の合計数を表示します。この数には、標準の Web パーツの動詞は含まれません。

<%@ control language="vb" classname="AccountUserControlVB"
 %>
<%@ implements 
  interface="System.Web.UI.WebControls.WebParts.IWebActionable"
 %>
<%@ Import Namespace="System.ComponentModel"
 %>

<script runat="server">

  Private m_Verbs As WebPartVerbCollection

  <Personalizable()> _
  Public Property UserName() As
 String
    Get
      If String.IsNullOrEmpty(Textbox1.Text)
 OrElse _
        Textbox1.Text.Length < 0 Then
        Return String.Empty
      Else
        Return Textbox1.Text
      End If
    End Get
    Set(ByVal value As String)
      Textbox1.Text = value
    End Set
  End Property


  <Personalizable()> _
  Public Property Phone() As
 String
    Get
      If String.IsNullOrEmpty(Textbox2.Text)
 OrElse _
        Textbox2.Text.Length < 0 Then
        Return String.Empty
      Else
        Return Textbox2.Text
      End If
    End Get
    Set(ByVal value As String)
      Textbox2.Text = value
    End Set
  End Property

  ' The following code handles the verbs.
  <Personalizable()> _
  Public Property VerbCounterClicks() As
 Integer
    Get
      Dim objVerbCounter As Object
 = _
        ViewState("VerbCounterClicks")
      VerbCounterClicks = 0
      If Not (objVerbCounter Is
 Nothing) Then
        VerbCounterClicks = CType(objVerbCounter, Int32)
      End If
      Return VerbCounterClicks
    End Get
    Set(ByVal value As Integer)
      ViewState("VerbCounterClicks") = value
    End Set
  End Property


  Private Sub IncrementVerbCounterClicks _
    (ByVal sender As Object,
 ByVal e As WebPartEventArgs)
    VerbCounterClicks += 1
    Label4.Text = "Custom Verbs Click Count: " + _
      Me.VerbCounterClicks.ToString()
  End Sub

  Sub Page_Load(ByVal sender As
 Object, ByVal e As EventArgs)
    Label3.Text = "Custom Verb Count:  " + _
      WebPartManager.GetCurrentWebPartManager(Page). _
      WebParts(0).Verbs.Count.ToString()
  End Sub

  ' This property implements the IWebActionable interface.
  ReadOnly Property Verbs() As
 WebPartVerbCollection _
    Implements IWebActionable.Verbs
    Get
      If (m_Verbs Is Nothing)
 Then
        Dim verbsList As New
 ArrayList()
        Dim onlyVerb As New
 WebPartVerb _
          ("customVerb1", New WebPartEventHandler(AddressOf
 IncrementVerbCounterClicks))
        onlyVerb.Text = "My Verb"
        onlyVerb.Description = "VerbTooltip"
        onlyVerb.Visible = True
        onlyVerb.Enabled = True
        verbsList.Add(onlyVerb)
        Dim otherVerb As New
 WebPartVerb _
          ("customVerb2", New WebPartEventHandler(AddressOf
 IncrementVerbCounterClicks))
        otherVerb.Text = "My other Verb"
        otherVerb.Description = "Other VerbTooltip"
        otherVerb.Visible = True
        otherVerb.Enabled = True
        verbsList.Add(otherVerb)
        m_Verbs = New WebPartVerbCollection(verbsList)
      End If
      Return m_Verbs
    End Get
  End Property

</script>
<div>
<asp:label id="Label1" runat="server">Name</asp:label>
<asp:textbox id="Textbox1" runat="server"
 />
</div>
<div>
<asp:label id="Label2" runat="server">Phone</asp:label>
<asp:textbox id="Textbox2" runat="server"></asp:textbox>
</div>
<div>
<asp:button id="Button2" runat="server"
 text="Save Form Values" />
</div>
<hr />
<br />
<asp:Label ID="Label3" runat="server"
 Text="" />
<br />
<asp:Label ID="Label4" runat="server"
 Text="" />
<%@ control language="C#" classname="AccountUserControl" %>
<%@ implements 
    interface="System.Web.UI.WebControls.WebParts.IWebActionable" %>
<%@ Import Namespace="System.ComponentModel" %>

<script runat="server">

  private WebPartVerbCollection m_Verbs;
  
  [Personalizable]
  public string UserName
  {
    get
    {
      if (String.IsNullOrEmpty(Textbox1.Text) || 
        Textbox1.Text.Length < 0)
        return String.Empty;
      else
        return Textbox1.Text;
    }
    
    set
    {
      Textbox1.Text = value;
    }
  }
    
  [Personalizable]
  public string Phone
  {
    get
    {
      if(String.IsNullOrEmpty(Textbox2.Text) || 
        Textbox2.Text.Length < 0)
        return String.Empty;
      else
        return Textbox2.Text;
    }
    
    set
    {
      Textbox2.Text = value;
    }
  }

  // The following code handles the verbs.
  [Personalizable]
  public int VerbCounterClicks
  {
    get
    {
      object objVerbCounter = ViewState["VerbCounterClicks"];
      int VerbCounterClicks = 0;
      if (objVerbCounter != null)
        VerbCounterClicks = (int)objVerbCounter;

      return VerbCounterClicks;
    }
    set
    {
      ViewState["VerbCounterClicks"] = value;
    }
  }

  private void IncrementVerbCounterClicks(object
 sender, 
    WebPartEventArgs e)
  {
    VerbCounterClicks += 1;
    Label4.Text = "Custom Verbs Click Count: " + 
      this.VerbCounterClicks.ToString();
  }

  void Page_Load(object sender, EventArgs e)
  {
    Label3.Text = "Custom Verb Count:  " +
      WebPartManager.GetCurrentWebPartManager(Page).
      WebParts[0].Verbs.Count.ToString();
  }


  // This property implements the IWebActionable interface.
  WebPartVerbCollection IWebActionable.Verbs
  {
    get
    {
      if (m_Verbs == null)
      {
        ArrayList verbsList = new ArrayList();
        WebPartVerb onlyVerb = new WebPartVerb
          ("customVerb1", new WebPartEventHandler(IncrementVerbCounterClicks));
        onlyVerb.Text = "My Verb";
        onlyVerb.Description = "VerbTooltip";
        onlyVerb.Visible = true;
        onlyVerb.Enabled = true;
        verbsList.Add(onlyVerb);
        WebPartVerb otherVerb = new WebPartVerb
          ("customVerb2", new WebPartEventHandler(IncrementVerbCounterClicks));
        otherVerb.Text = "My other Verb";
        otherVerb.Description = "Other VerbTooltip";
        otherVerb.Visible = true;
        otherVerb.Enabled = true;
        verbsList.Add(otherVerb);
        m_Verbs = new WebPartVerbCollection(verbsList);
        return m_Verbs;
      }
      return m_Verbs;
    }
  }
  
</script>
<div>
<asp:label id="Label1" runat="server">Name</asp:label>
<asp:textbox id="Textbox1" runat="server" />
</div>
<div>
<asp:label id="Label2" runat="server">Phone</asp:label>
<asp:textbox id="Textbox2" runat="server"></asp:textbox>
</div>
<div>
<asp:button id="Button2" runat="server" text="Save Form
 Values" />
</div>
<hr />
<br />
<asp:Label ID="Label3" runat="server" Text="" />
<br />
<asp:Label ID="Label4" runat="server" Text="" />

コード例の 2 番目の部分は、ユーザー コントロールをホストする .aspx ページです。このコントロールは WebPartZone コントロール内で参照されているため、ASP.NET は、実行時にユーザー コントロールを GenericWebPart コントロール内にラップし、WebPart コントロールとして扱います。ブラウザでこのページを読み込むと、コントロールの下部のラベルに、Verbs プロパティから参照されるコレクションに含まれるカスタム動詞の数が表示されます。また、コントロールの動詞のメニューをクリックしていずれかの動詞をクリックすると、別のラベルが表示され、カスタム動詞がクリックされた合計回数が表示されます。

<%@ page language="vb" %>
<%@ register tagprefix="uc1" 
    tagname="AccountUserControlVB" 
    src="usercontrolverbvb.ascx"%>
<html>
  <head runat="server">
    <title>
      Personalizable User Control with IWebPart Properties
    </title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:webpartmanager id="WebPartManager1"
 runat="server" />
      <asp:webpartzone 
        id="zone1" 
        runat="server" 
        headertext="Main" 
        CloseVerb-Enabled="false">
        <zonetemplate>
          <uc1:AccountUserControlVB 
            runat="server" 
            id="accountwebpart" 
            title="Account Form" />
        </zonetemplate>
      </asp:webpartzone> 
    </form>
  </body>
</html>
<%@ page language="c#" %>
<%@ register tagprefix="uc1" 
    tagname="AccountUserControl" 
    src="usercontrolverbcs.ascx"%>
<html>
  <head runat="server">
    <title>
      Personalizable User Control with IWebPart Properties
    </title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:webpartmanager id="WebPartManager1" runat="server"
 />
      <asp:webpartzone 
        id="zone1" 
        runat="server" 
        headertext="Main" 
        CloseVerb-Enabled="false">
        <zonetemplate>
          <uc1:AccountUserControl 
            runat="server" 
            id="accountwebpart" 
            title="Account Form" />
        </zonetemplate>
      </asp:webpartzone> 
    </form>
  </body>
</html>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
IWebActionable メンバ
System.Web.UI.WebControls.WebParts 名前空間
Verbs
GenericWebPart.Verbs プロパティ
その他の技術情報
ASP.NET Web パーツ ページ

IWebActionable プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ Verbs カスタムの WebPartVerb オブジェクトのコレクションへの参照を取得します。
参照参照

関連項目

IWebActionable インターフェイス
System.Web.UI.WebControls.WebParts 名前空間
Verbs
GenericWebPart.Verbs プロパティ

その他の技術情報

ASP.NET Web パーツ ページ

IWebActionable メンバ

WebPart コントロールまたは他のサーバー コントロールに、動詞のコレクションを格納できるようにします。

IWebActionable データ型で公開されるメンバを以下の表に示します。


パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ Verbs カスタムの WebPartVerb オブジェクトのコレクションへの参照を取得します。
参照参照

関連項目

IWebActionable インターフェイス
System.Web.UI.WebControls.WebParts 名前空間
Verbs
GenericWebPart.Verbs プロパティ

その他の技術情報

ASP.NET Web パーツ ページ



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

「IWebActionable」の関連用語

IWebActionableのお隣キーワード

   

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



IWebActionableのページの著作権

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

©2026 GRAS Group, Inc.RSS