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 コントロールユーザー コントロールなど) が既定使用できる標準動詞用意されています。標準動詞には、closeminimizerestoredeleteeditexport などがあります

また、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 パーツ ページ



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

辞書ショートカット

すべての辞書の索引

「IWebActionable」の関連用語

IWebActionableのお隣キーワード
検索ランキング

   

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



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

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

©2025 GRAS Group, Inc.RSS