IWebPart インターフェイスとは? わかりやすく解説

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

IWebPart インターフェイス

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

ASP.NET WebPart コントロールによって使用される共通のユーザー インターフェイス (UI) プロパティ定義します

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

解説解説

IWebPart インターフェイスは、WebPart コントロール対すユーザー操作性向上させる複数UI 指向プロパティ提供します基本 WebPart クラスから派生するコントロール作成する場合は、IWebPart インターフェイスすべてのプロパティ実装得られます。これは、WebPart 基本クラスがこのインターフェイス実装するためです。

既存ユーザー コントロールASP.NET コントロール、または WebPart クラスから継承していないカスタム サーバー コントロールを、Web パーツ アプリケーション一部として使用できます。これらは、IWebPart インターフェイスによって宣言されている、これらの UI 指向プロパティ使用できます。WebPartZoneBase ゾーン既存サーバー コントロール配置している場合、それらは実行時に GenericWebPart オブジェクトラップされますGenericWebPart クラスは、WebPart 基本クラスから継承するため、既存サーバー コントロール真の WebPart コントロールとして機能させ、それらに IWebPart インターフェイスプロパティ追加します

WebPart コントロールではないサーバー コントロールゾーン配置する場合、それらのコントロール実行時IWebPart プロパティ使用できますまた、ページマークアップサーバー コントロールのこれらのプロパティに (ページ永続的な書式で) 値を宣言できます。しかし、これらのプロパティ実行時サーバー コントロールによって利用されるだけで、IntelliSense などのデザイン時のコーディング機能は、サーバー コントロール宣言されている IWebPart プロパティ認識しません。これらのコントロール宣言されプロパティは、ページ読み込むときに機能しますが、Microsoft Visual Studio は、デザイン時にこれらのプロパティを有効であるとは見なしません。IWebPart プロパティ既存サーバー コントロールおよびユーザー コントロール追加してデザイン時のユーザー操作性向上させる場合は、サーバー コントロールIWebPart インターフェイス実装できます

IWebPart インターフェイス実装するもう 1 つ理由 (おそらくは主な理由) は、expando プロパティ使用サポートしないコントロールのためです。expando プロパティは、実際は、IAttributeAccessor インターフェイス通じてプロパティとしてクラス動的に追加できる文字列です。WebControl クラスその子含め、このインターフェイス実装するコントロールでは、expando プロパティ使用できますこのためすべての ASP.NET サーバー コントロール、それらから派生したカスタム コントロールWeb ユーザー コントロール、および WebPart コントロールは、expando プロパティ使用サポートします。しかし、基本 Control クラスから直接継承したカスタム コントロールでは、expando プロパティサポートされません。このため、WebPartZone 内でこれらのコントロール宣言しても、コントロール上の共通 IWebPart プロパティや、TitleDescription などのプロパティ宣言できません。このようなコントロール上記プロパティ使用する場合は、IWebPart インターフェイス実装する必要があります

実装時の注意 通常カスタムWebPart コントロールまたはサーバー コントロールでは、IWebPart インターフェイス実装する必要はありません。これは、基本 WebPart クラスが既にそのインターフェイス実装しているからです。カスタムWebPart コントロール、および WebPartZoneBase ゾーン配置されているその他のサーバー コントロールは、すべての IWebPart プロパティ使用できますIWebPart インターフェイス各自実装する主な理由は、カスタム WebPart コントロールであっても他のサーバー コントロールであっても既定実装変更するためです。たとえば、いくつかのプロパティ既定値指定する場合あります。他にユーザー コントロールまたはサーバー コントロールインターフェイス実装する理由は、デザイン時にコントロールでこれらのプロパティ使用しやすくするためです。

使用例使用例

ユーザー コントロールIWebPart インターフェイス実装する方法次のコード例示します。これは、プロパティ最小限使用方法を示すための単純な実装例です。

コード例最初部分は、ユーザー コントロール示しますユーザー コントロールは、IWebPart インターフェイスすべてのプロパティと、ユーザー インターフェイスコントロール結合される 2 つパブリック プロパティ実装ます。2 つカスタム プロパティは、それぞれ Personalizable 属性使用します。これは、これらのプロパティの値がブラウザ セッション間で保存されるようにします。このコード例には含まれていませんが、基本 WebPart クラス実装では、IWebPart インターフェイスすべてのプロパティ同様にパーソナル化可能として実装されます

<%@ control language="VB" classname="AccountUserControlVB"%>
<%@ implements interface="System.Web.UI.WebControls.WebParts.IWebPart"
 %>

<script runat="server">

  Private m_Description As String
  Private m_Title As String
  Private m_TitleIconImageUrl As String
  Private m_TitleUrl As String
  Private m_CatalogIconImageUrl As String


  <Personalizable()> _
  Public Property UserName() As
 String
    Get
      If String.IsNullOrEmpty(Textbox1.Text)
 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)
 Then
        Return String.Empty
      Else
        Return Textbox2.Text
      End If
    End Get
    Set(ByVal value As String)
      Textbox2.Text = Value
    End Set
  End Property

  Public Property Description() As
 String _
    Implements IWebPart.Description
    Get
      Dim objTitle As Object
 = ViewState("Description")
      If objTitle Is Nothing
 Then
        Return String.Empty
      End If
      Return CStr(objTitle)
    End Get
    Set(ByVal value As String)
      ViewState("Description") = value
    End Set
  End Property
  
  Public Property Title() As
 String _
    Implements IWebPart.Title
    Get
      Dim objTitle As Object
 = ViewState("Title")
      If objTitle Is Nothing
 Then
        Return String.Empty
      End If
      Return CStr(objTitle)
    End Get
    Set(ByVal value As String)
      ViewState("Title") = value
    End Set
  End Property
  
  ReadOnly Property Subtitle() As
 String _
    Implements IWebPart.Subtitle
    Get
      Dim objSubTitle As Object
 = ViewState("Subtitle")
      If objSubTitle Is Nothing
 Then
        Return "My Subtitle"
      End If
      Return CStr(objSubTitle)
    End Get
  End Property
  
  Public Property TitleIconImageUrl() As
 String _
    Implements IWebPart.TitleIconImageUrl
    Get
      Dim objTitle As Object
 = ViewState("TitleIconImageUrl")
      If objTitle Is Nothing
 Then
        Return String.Empty
      End If
      Return CStr(objTitle)
    End Get
    Set(ByVal value As String)
      ViewState("TitleIconImageUrl") = value
    End Set
  End Property
  
  Public Property TitleUrl() As
 String _
    Implements IWebPart.TitleUrl
    Get
      Dim objTitle As Object
 = ViewState("TitleUrl")
      If objTitle Is Nothing
 Then
        Return String.Empty
      End If
      Return CStr(objTitle)
    End Get
    Set(ByVal value As String)
      ViewState("TitleUrl") = value
    End Set
  End Property
  
  Public Property CatalogIconImageUrl() As
 String _
    Implements IWebPart.CatalogIconImageUrl
    Get
      Dim objTitle As Object
 = ViewState("CatalogIconImageUrl")
      If objTitle Is Nothing
 Then
        Return String.Empty
      End If
      Return CStr(objTitle)
    End Get
    Set(ByVal value As String)
      ViewState("CatalogIconImageUrl") = value
    End Set
  End Property
  
  ' Update the selected IWebPart property value.
  Sub Button1_Click(ByVal sender As
 Object, ByVal e As EventArgs)
    Dim propertyValue As String
 = Server.HtmlEncode(TextBox3.Text)
    TextBox3.Text = String.Empty
      
    Select Case RadioButtonList1.SelectedValue
      Case "title"
        Me.Title = propertyValue
      Case "description"
        Me.Description = propertyValue
      Case "catalogiconimageurl"
        Me.CatalogIconImageUrl = propertyValue
      Case "titleiconimageurl"
        Me.TitleIconImageUrl = propertyValue
      Case "titleurl"
        Me.TitleUrl = propertyValue
      Case Else
    End Select

  End Sub 'Button1_Click
  
</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 />
<asp:Label ID="Label3" Runat="server"
 Text="Label">
  <h3>Update selected IWebPart property values.</h3>
</asp:Label>
<asp:RadioButtonList ID="RadioButtonList1" Runat="server">
  <asp:ListItem Value="title">Title</asp:ListItem>
  <asp:ListItem Value="description">Description</asp:ListItem>
  <asp:ListItem Value="catalogiconimageurl">CatalogIconImageUrl</asp:ListItem>
  <asp:ListItem Value="titleiconimageurl">TitleIconImageUrl</asp:ListItem>
  <asp:ListItem Value="titleurl">TitleUrl</asp:ListItem>
</asp:RadioButtonList>
<br />
<asp:Label ID="Label4" runat="server"
 Text="Label">
Property Value:  
</asp:Label>
<asp:TextBox ID="TextBox3" runat="server">
</asp:TextBox>  
<br />  
<asp:Button ID="Button1" runat="server"
 
  Text="Update Property" 
  OnClick="Button1_Click">
</asp:Button>
<%@ control language="C#" classname="AccountUserControlCS"%>
<%@ implements interface="System.Web.UI.WebControls.WebParts.IWebPart"
 %>

<script runat="server">

  private string m_Description;
  private string m_Title;
  private string m_TitleIconImageUrl;
  private string m_TitleUrl;
  private string m_CatalogIconImageUrl;
  
  [Personalizable]
  public string UserName
  {
    get
    {
      if(String.IsNullOrEmpty(Textbox1.Text))
        return String.Empty;
      else
        return Textbox1.Text;
    }
    
    set
    {
      Textbox1.Text = value;
    }
  }
    
  [Personalizable]
  public string Phone
  {
    get
    {
      if(String.IsNullOrEmpty(Textbox2.Text))
        return String.Empty;
      else
        return Textbox2.Text;
    }
    
    set
    {
      Textbox2.Text = value;
    }
  }

  public string Description
  {
    get
    {
      object objTitle = ViewState["Description"];
      if (objTitle == null)
        return String.Empty;

      return (string)objTitle;
    }
    set
    {
      ViewState["Description"] = value;
    }
  }

  public string Title
  {
    get
    {
      object objTitle = ViewState["Title"];
      if (objTitle == null)
        return String.Empty;

      return (string)objTitle;
    }
    set
    {
      ViewState["Title"] = value;
    }
  }

  public string Subtitle
  {
    get
    {
      object objSubTitle = ViewState["Subtitle"];
      if (objSubTitle == null)
        return "My Subtitle";

      return (string)objSubTitle;
    }

  }

  public string TitleIconImageUrl
  {
    get
    {
      object objTitle = ViewState["TitleIconImageUrl"];
      if (objTitle == null)
        return String.Empty;

      return (string)objTitle;
    }
    set
    {
      ViewState["TitleIconImageUrl"] = value;
    }
  }

  public string TitleUrl
  {
    get
    {
      object objTitle = ViewState["TitleUrl"];
      if (objTitle == null)
        return String.Empty;

      return (string)objTitle;
    }
    set
    {
      ViewState["TitleUrl"] = value;
    }
  }

  public string CatalogIconImageUrl
  {
    get
    {
      object objTitle = ViewState["CatalogIconImageUrl"];
      if (objTitle == null)
        return String.Empty;

      return (string)objTitle;
    }
    set
    {
      ViewState["CatalogIconImageUrl"] = value;
    }
  }
  
  // Update the selected IWebPart property value.
  void Button1_Click(object sender, EventArgs e)
  {
    String propertyValue = Server.HtmlEncode(TextBox3.Text);
    TextBox3.Text = String.Empty;

    switch (RadioButtonList1.SelectedValue)
    {
      case "title":
        this.Title = propertyValue;
        break;
      case "description":
        this.Description = propertyValue;
        break;
      case "catalogiconimageurl":
        this.CatalogIconImageUrl = propertyValue;
        break;
      case "titleiconimageurl":
        this.TitleIconImageUrl = propertyValue;
        break;
      case "titleurl":
        this.TitleUrl = propertyValue;
        break;
      default:
        break;
    }
  }
  
</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 />
<asp:Label ID="Label3" Runat="server" Text="Label">
  <h3>Update selected IWebPart property values.</h3>
</asp:Label>
<asp:RadioButtonList ID="RadioButtonList1" Runat="server">
  <asp:ListItem Value="title">Title</asp:ListItem>
  <asp:ListItem Value="description">Description</asp:ListItem>
  <asp:ListItem Value="catalogiconimageurl">CatalogIconImageUrl</asp:ListItem>
  <asp:ListItem Value="titleiconimageurl">TitleIconImageUrl</asp:ListItem>
  <asp:ListItem Value="titleurl">TitleUrl</asp:ListItem>
</asp:RadioButtonList>
<br />
<asp:Label ID="Label4" runat="server" Text="Label">
Property Value:  
</asp:Label>
<asp:TextBox ID="TextBox3" runat="server">
</asp:TextBox>  
<br />  
<asp:Button ID="Button1" runat="server" 
  Text="Update Property" 
  OnClick="Button1_Click">
</asp:Button>

コード例2 番目の部分は、ユーザー コントロールホストする Web ページ示しますページには、WebPartZone コントロール含まれその内部でユーザー コントロール参照されます。IWebPart インターフェイス複数プロパティ値は、ユーザー コントロールマークアップ宣言によって設定されています。これで、このユーザー コントロールは、デザイン時および実行時WebPart コントロール同じよう動作し表示されます。ブラウザページ読み込んでいる場合は、ページUI使用して実装されている IWebPart プロパティの値をプログラムによって実行時変更する機能デモンストレーションできます一部プロパティ値を変更した場合は、ページではその変更がわからなくても、ページ ソース (TitleIconImageUrl プロパティ) に表示されているか、アプリケーションの状態データ (CatalogIconImageUrl プロパティ) に格納されています。

<%@ page language="VB" %>
<%@ register tagprefix="uc1" 
    tagname="AccountUserControlVB" 
    src="AccountUserControlvb.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"
            Description="Account Form with default values."
            CatalogIconImageUrl="MyCatalogIcon.gif"
            TitleIconImageUrl="MyTitleIcon.gif"
            TitleUrl="MyUrl.html"/>
        </zonetemplate>
      </asp:webpartzone>    
    </form>
  </body>
</html>
<%@ page language="c#" %>
<%@ register tagprefix="uc1" 
    tagname="AccountUserControlCS" 
    src="AccountUserControlcs.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:AccountUserControlCS 
            runat="server" 
            id="accountwebpart" 
            title="Account Form"
            Description="Account Form with default values."
            CatalogIconImageUrl="MyCatalogIcon.gif"
            TitleIconImageUrl="MyTitleIcon.gif"
            TitleUrl="MyUrl.html"/>
        </zonetemplate>
      </asp:webpartzone>    
    </form>
  </body>
</html>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



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

辞書ショートカット

すべての辞書の索引

「IWebPart インターフェイス」の関連用語

IWebPart インターフェイスのお隣キーワード
検索ランキング

   

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



IWebPart インターフェイスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS