GenericWebPart イベント

名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。 ( Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。 ( Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。 ( Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。 ( Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。 ( Control から継承されます。) |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。 ( Control から継承されます。) |

GenericWebPart クラス
アセンブリ: System.Web (system.web.dll 内)


GenericWebPart コントロールは、WebPart コントロールではないサーバー コントロールのためのランライム ラッパーを提供し、これによって、これらのコントロールが Web パーツ ページや Web パーツ アプリケーションで使用できるようになります。開発者が、ユーザー コントロール、ASP.NET サーバー コントロール、または既存のカスタム コントロールなどのサーバー コントロールを WebPartZoneBase コントロールに追加する場合には、GenericWebPart コントロールが、実行時にサーバー コントロールを自動的にラップするため、それらのコントロールは、本物の WebPart コントロールと同様の機能を提供できます。
GenericWebPart コントロールと WebPart コントロールの比較を、次の表に示します。
GenericWebPart コントロール | |
---|---|
ASP.NET コントロール、カスタム コントロール、またはユーザー コントロールを Web パーツ アプリケーションのコントロールとして使用できるように、WebPart コントロールではないサーバー コントロールに Web パーツ機能を装備するために存在します。 | 組み込みのネイティブな Web パーツ機能を持つカスタムの ASP.NET コントロールを作成するために存在します。これには、パーソナル化、接続、インポートとエクスポート、およびドラッグ アンド ドロップの機能が含まれます。 |
ページのマークアップでは宣言されません。サーバー コントロールを実行時にラップするためにだけ存在し、ラップされるコントロールまたはラップされる子コントロールに WebPart コントロールのすべての機能を提供します。 | ASP.NET サーバー コントロールと同様に、デザイン時にページのマークアップで宣言できますが、WebPartZoneBase ゾーンでは宣言できません。 |
子コントロールを Web パーツのパーソナル化プロセスに追加および統合するため、本物の WebPart コントロールのように動作させることができます。これは自動的に行われるため、開発者が、Web パーツ アプリケーションでサーバー コントロールおよびユーザー コントロールを簡単に使用できるようになります。 | |
(GetGenericWebPart メソッドを使用し、そのメソッドに子サーバー コントロールを渡すことによって) 本物の WebPart コントロールや標準 ASP.NET コントロールと同様に、実行時にプログラムによってアクセスできます。 |
ユーザーにとっての利点は、GenericWebPart コントロールによって一貫性のある操作方法が提供されることです。すべてのサーバー コントロールで、WebPart コントロールと同様の機能を実行でき、動詞、アイコン、タイトル、およびヘッダーなど、一貫性のある同じユーザー インターフェイス (UI: User Interface) 要素を装備することもできます。開発者にとっての利点は、GenericWebPart コントロールによって既存のユーザー コントロールおよび既存のサーバー コントロールを Web パーツ アプリケーションで再利用できるようになることです。
![]() |
---|
Web パーツ ページを作成する際、既存のユーザー コントロールまたは既存のカスタム コントロールを GenericWebPart コントロールでラップできるようにするために必要な作業はありません。単に、プログラムまたはページのマークアップの宣言のいずれかでサーバー コントロールまたはユーザー コントロールを WebPartZoneBase ゾーンに追加すると、Web パーツ コントロール セットが実行時に自動的にそのコントロールを GenericWebPart オブジェクトでラップします。 |
WebPartZoneBase ゾーンに配置されるサーバー コントロールは、実行時に GenericWebPart コントロールでラップされるため、開発者は通常のサーバー コントロールおよびユーザー コントロールを、それらが WebPart コントロールであるかのように使用できます。WebPartZone 内の基本 Control クラスから継承したカスタム コントロールを宣言する場合、これらのコントロールは、組み込みの WebPart プロパティの使用をサポートできないことに注意してください。このため、Title プロパティや Description プロパティなどのプロパティを含め、そのようなコントロールには IWebPart プロパティを宣言できません。対照的に、その他の種類のサーバー コントロール (WebPart コントロール、ユーザー コントロール、WebControl から継承したカスタム コントロールなど) では、expando プロパティの使用がサポートされるため、これらのプロパティを宣言できます。
expando プロパティは、実際は、IAttributeAccessor インターフェイスを通じてプロパティとしてクラスに動的に追加できる文字列です。WebControl クラスとその子を含め、このインターフェイスを実装するコントロールでは、expando プロパティを使用できます。基本 Control クラスでは expando プロパティがサポートされないため、Control クラスから継承したカスタム コントロールを WebPartZone に配置し、実行時に GenericWebPart コントロールにラップしても、Web パーツ コントロール セットは組み込みの IWebPart プロパティをカスタム コントロールに動的に追加できません。この場合、2 つの選択肢があります。IWebPart プロパティを持たないカスタム コントロールを使用するか、またはカスタム コントロールで IWebPart インターフェイスを実装し、そのプロパティを使用できるようにします。
WebControl から継承したコントロールが IWebPart プロパティを使用できる例として、デザイン時に ASP.NET の Calendar コントロールを (WebPartZoneBase ゾーン内の) ページのマークアップで宣言すると、このコントロールは WebPart クラスから継承しておらず、またネイティブでは WebPart のメンバを含みませんが、WebPart コントロールであるかのように扱うことができます。Title、Description、その他のカレンダー コントロールで WebPart プロパティを宣言できます。実行時に、GetGenericWebPart メソッドを使用して GenericWebPart コントロールを返すことができます。このコントロールではカレンダー コントロールを動的にラップし、そのコントロールが WebPart コントロールであるかのように、まったく同じプロパティ、イベント、メソッドを使用してプログラムからアクセスできます。
GenericWebPart コントロールには、基になるサーバー コントロールにアクセスするための重要なプロパティである ChildControl プロパティが存在します。このプロパティによって、開発者はプログラムでサーバー コントロールにアクセスできます。また、ChildControl プロパティは、子コントロールからのパーソナル化データにアクセスするため、および AuthorizationFilter プロパティが設定されている場合に承認を実行するために、WebPartManager コントロールでも使用されます。
GenericWebPart コントロールには、他にもいくつかのプロパティが存在します。これらは、いずれも基本 WebPart クラスから継承されたプロパティをオーバーライドします。前述のように、これらのプロパティは子コントロールと共に使用できるため、WebPart コントロールのように動作できます。ExportMode プロパティは重要なプロパティで、エクスポートできるすべてのプロパティ、または機密性が高くないものとしてマークされたプロパティのみをエクスポートできるかどうかを判断できます。CatalogIconImageUrl、Description、Height、Title、TitleUrl、Width などの WebPart クラスから継承された UI 用のプロパティは、WebPartZoneBase ゾーンに配置されるサーバー コントロールに対して宣言型マークアップで設定できます。
GenericWebPart クラスの重要なメソッドには CreateControlCollection メソッドが含まれ、GenericWebPart コントロールに関連付けられているコントロール (子コントロールも含む) のコレクションを作成します。また、Render メソッドは、ラップされた子コントロールへのすべての出力を代行します。GenericWebPart クラスのコンストラクタはプロテクト メンバで、アプリケーションの内部使用または機能拡張のいずれかの用途で使用されます。
GenericWebPart コントロールの使用方法の理解に役立つ情報を、次に示します。GenericWebPart クラスのオーバーライドされたプロパティに既定値を設定する場合、ユーザー コントロールまたはカスタム サーバー コントロールで、IWebPart インターフェイスと IWebActionable インターフェイスを実装し、それらのメンバをオーバーライドできます。GenericWebPart コントロールは、実装されたプロパティの値を、そのインターフェイスを実装している子コントロールから実行時に取得します。コントロールに Personalizable メタデータ属性を使用してプロパティがパーソナル化できるものとして定義されている場合、GenericWebPart コントロールは、WebPart コントロールのパーソナル化できるプロパティと同様に、それらのプロパティの実行時のパーソナル化を自動的に有効化します。
コントロールに Web パーツの編集機能を持たせる場合は、IWebEditable インターフェイスを実装できます。実行時に CreateEditorParts メソッドが呼び出されると、GenericWebPart コントロールの WebBrowsableObject プロパティのコードが子コントロール内の同一のプロパティを呼び出し、子コントロールの実装を使用して、関連付けられたカスタム EditorPart コントロールを作成します。
継承時の注意 場合によっては、GenericWebPart クラスから継承する必要があります。1 つの例として、GenericWebPart コントロールの作成時に、開発者がコンストラクタ内にカスタム動作を実装する場合があります。たとえば、子コントロールを GenericWebPart クラス内のコントロールのコレクション以外の場所に格納することが必要な場合があります。GenericWebPart クラスから継承する場合は、WebPartManager クラスからも継承して、その CreateWebPart メソッドをオーバーライドして、カスタム コントロールを作成できるようにする必要があります。
GenericWebPart コントロールが、WebPart コントロールではないサーバー コントロールを実行時に自動的にラップする方法を次のコード例に示します。
コード例の最初の部分には、2 つの WebPartZone コントロールが存在する Web パーツ ページが含まれています。各ゾーンには、標準 ASP.NET サーバー コントロールが存在します。コントロールが WebPartZone ゾーン内に存在するため、ページがコンパイルされると、それらのコントロールは自動的に GenericWebPart コントロールでラップされます。したがって、これらのコントロールで WebPart クラスのプロパティを宣言できます。ブラウザでページを読み込み、[Display All Property Values] ボタンをクリックすると、各コントロールの詳細がラベル内に表示されます。GenericWebPart コントロールの動作を表示するために、最初のゾーンの Calendar コントロールでは一部の GenericWebPart プロパティが .aspx ページの宣言型マークアップで設定されますが、BulletedList コントロールでは同様の設定はされません。ページを読み込んだ後で、2 つのコントロールのプロパティ値の違いと、両方が親 GenericWebPart コントロールを持つことに注意してください。
<%@ Page Language="vb" Codefile="genericwebpart.vb" Inherits="genericwebpart_sample" %> <html > <head id="Head1" runat="server"> <title>GenericWebPart Example</title> </head> <body> <form id="form1" runat="server"> <asp:WebPartManager ID="WebPartManager1" runat="server"> </asp:WebPartManager> <asp:WebPartZone ID="WebPartZone1" runat="server"> <ZoneTemplate> <asp:Calendar ID="Calendar1" runat="server" Title="My Calendar" Description="A calendar used as a GenericWebPart control." CatalogIconImageUrl="MyCatalogIcon.gif" TitleIconimageUrl ="MyTitleIcon.gif" TitleUrl="MyInfoUrl.htm" Width="250"/> </ZoneTemplate> </asp:WebPartZone> <asp:WebPartZone ID="WebPartZone2" runat="server"> <ZoneTemplate> <asp:BulletedList ID="BulletedList1" Runat="server" DisplayMode="HyperLink"> <asp:ListItem Value="http://msdn.microsoft.com"> MSDN </asp:ListItem> <asp:ListItem Value="http://www.asp.net"> ASP.NET </asp:ListItem> <asp:ListItem Value="http://www.msn.com"> MSN </asp:ListItem> </asp:BulletedList> </ZoneTemplate> </asp:WebPartZone> <hr /> <asp:Button ID="Button1" width="200" runat="server" Text="Display All Property Values" OnClick="Button1_Click" /> <br /> <asp:Label ID="Label2" runat="server" Text="" /> <br /> <asp:Label ID="Label3" runat="server" Text="" /> </form> </body> </html>
<%@ Page Language="C#" Codefile="genericwebpart.cs" Inherits="genericwebpart_sample" %> <html > <head runat="server"> <title>GenericWebPart Example</title> </head> <body> <form id="form1" runat="server"> <asp:WebPartManager ID="WebPartManager1" runat="server"> </asp:WebPartManager> <asp:WebPartZone ID="WebPartZone1" runat="server"> <ZoneTemplate> <asp:Calendar ID="Calendar1" runat="server" Title="My Calendar" Description="A calendar used as a GenericWebPart control." CatalogIconImageUrl="MyCatalogIcon.gif" TitleIconimageUrl ="MyTitleIcon.gif" TitleUrl="MyInfoUrl.htm" Width="250"/> </ZoneTemplate> </asp:WebPartZone> <asp:WebPartZone ID="WebPartZone2" runat="server"> <ZoneTemplate> <asp:BulletedList ID="BulletedList1" Runat="server" DisplayMode="HyperLink"> <asp:ListItem Value="http://msdn.microsoft.com"> MSDN </asp:ListItem> <asp:ListItem Value="http://www.asp.net"> ASP.NET </asp:ListItem> <asp:ListItem Value="http://www.msn.com"> MSN </asp:ListItem> </asp:BulletedList> </ZoneTemplate> </asp:WebPartZone> <hr /> <asp:Button ID="Button1" width="200" runat="server" Text="Display All Property Values" OnClick="Button1_Click" /> <br /> <asp:Label ID="Label2" runat="server" Text="" /> <br /> <asp:Label ID="Label3" runat="server" Text="" /> </form> </body> </html>
コード例の 2 番目の部分では、GenericWebPart コントロールの一部のプロパティにプログラムでアクセスする部分クラスについて説明しています。Page_Load メソッドでは、サーバー コントロールをラップする GenericWebPart コントロールのランタイムのインスタンスを取得するために、GetGenericWebPart メソッドが使用されています。この方法で親 GenericWebPart コントロールへの参照を取得すると、通常のサーバー コントロールまたはユーザー コントロールが WebPart コントロールであるかのように、実行時にプログラムから操作できるようになります。
Imports System Imports System.Data Imports System.Configuration Imports System.Web Imports System.Web.Security Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.WebControls.WebParts Imports System.Web.UI.HtmlControls Partial Public Class genericwebpart_sample Inherits System.Web.UI.Page Private calendarPart As GenericWebPart Private listPart As GenericWebPart Protected Sub Page_Load(ByVal sender As [Object], ByVal e As EventArgs) calendarPart = WebPartManager1.GetGenericWebPart(Calendar1) listPart = WebPartManager1.GetGenericWebPart(BulletedList1) If Not IsPostBack Then Label2.Text = String.Empty Label3.Text = String.Empty End If End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Label2.Text = _ "<h3>Calendar GenericWebPart Properties</h3>" & _ "<em>Title: </em>" & calendarPart.Title & _ "<br />" & _ "<em>CatalogIconImageUrl: </em>" & calendarPart.CatalogIconImageUrl & _ "<br />" & _ "<em>TitleUrl: </em>" & calendarPart.TitleUrl & _ "<br />" & _ "<em>Decription: </em>" & calendarPart.Description & _ "<br />" & _ "<em>TitleIconImageUrl: </em>" & calendarPart.TitleIconImageUrl & _ "<br />" & _ "<em>ChildControl ID: </em>" & calendarPart.ChildControl.ID & _ "<br />" & _ "<em>ChildControl Type: </em>" & calendarPart.ChildControl.GetType().Name & _ "<br />" & _ "<em>GenericWebPart ID: </em>" & calendarPart.ID & _ "<br />" & _ "<em>GenericWebPart Type: </em>" & calendarPart.GetType().Name & _ "<br />" & _ "<em>GenericWebPart Parent ID: </em>" & calendarPart.Parent.ID Label3.Text = _ "<h3>BulletedList GenericWebPart Properties</h3>" & _ "<em>Title: </em>" & listPart.Title & _ "<br />" & _ "<em>CatalogIconImageUrl: </em>" & listPart.CatalogIconImageUrl & _ "<br />" & _ "<em>TitleUrl: </em>" & listPart.TitleUrl & _ "<br />" & _ "<em>Decription: </em>" & listPart.Description & _ "<br />" & _ "<em>TitleIconImageUrl: </em>" & listPart.TitleIconImageUrl & _ "<br />" & _ "<em>ChildControl ID: </em>" & listPart.ChildControl.ID & _ "<br />" & _ "<em>ChildControl Type: </em>" & listPart.ChildControl.GetType().Name & _ "<br />" & _ "<em>GenericWebPart ID: </em>" & listPart.ID & _ "<br />" & _ "<em>GenericWebPart Type: </em>" & listPart.GetType().Name & _ "<br />" & _ "<em>GenericWebPart Parent ID: </em>" & listPart.Parent.ID End Sub End Class
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class genericwebpart_sample : System.Web.UI.Page { GenericWebPart calendarPart; GenericWebPart listPart; protected void Page_Load(Object sender, EventArgs e) { calendarPart = WebPartManager1.GetGenericWebPart(Calendar1); listPart = WebPartManager1.GetGenericWebPart(BulletedList1); if (!IsPostBack) { Label2.Text = String.Empty; Label3.Text = String.Empty; } } protected void Button1_Click(object sender, EventArgs e) { Label2.Text = @"<h3>Calendar GenericWebPart Properties</h3>" + "<em>Title: </em>" + calendarPart.Title + "<br />" + "<em>CatalogIconImageUrl: </em>" + calendarPart.CatalogIconImageUrl + "<br />" + "<em>TitleUrl: </em>" + calendarPart.TitleUrl + "<br />" + "<em>Decription: </em>" + calendarPart.Description + "<br />" + "<em>TitleIconImageUrl: </em>" + calendarPart.TitleIconImageUrl + "<br />" + "<em>ChildControl ID: </em>" + calendarPart.ChildControl.ID + "<br />" + "<em>ChildControl Type: </em>" + calendarPart.ChildControl.GetType().Name + "<br />" + "<em>GenericWebPart ID: </em>" + calendarPart.ID + "<br />" + "<em>GenericWebPart Type: </em>" + calendarPart.GetType().Name + "<br />" + "<em>GenericWebPart Parent ID: </em>" + calendarPart.Parent.ID; Label3.Text = @"<h3>BulletedList GenericWebPart Properties</h3>" + "<em>Title: </em>" + listPart.Title + "<br />" + "<em>CatalogIconImageUrl: </em>" + listPart.CatalogIconImageUrl + "<br />" + "<em>TitleUrl: </em>" + listPart.TitleUrl + "<br />" + "<em>Decription: </em>" + listPart.Description + "<br />" + "<em>TitleIconImageUrl: </em>" + listPart.TitleIconImageUrl + "<br />" + "<em>ChildControl ID: </em>" + listPart.ChildControl.ID + "<br />" + "<em>ChildControl Type: </em>" + listPart.ChildControl.GetType().Name + "<br />" + "<em>GenericWebPart ID: </em>" + listPart.ID + "<br />" + "<em>GenericWebPart Type: </em>" + listPart.GetType().Name + "<br />" + "<em>GenericWebPart Parent ID: </em>" + listPart.Parent.ID; } }


System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.Panel
System.Web.UI.WebControls.WebParts.Part
System.Web.UI.WebControls.WebParts.WebPart
System.Web.UI.WebControls.WebParts.GenericWebPart


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


GenericWebPart コンストラクタ
アセンブリ: System.Web (system.web.dll 内)


GenericWebPart コンストラクタは WebPartManager コントロールの CreateWebPart メソッドによって呼び出され、子サーバー コントロールへの参照で渡すことによって GenericWebPart コントロールのインスタンスを初期化します。GenericWebPart オブジェクトが作成されると、ChildControl プロパティを使用して、子コントロールを参照できます。

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


GenericWebPart プロパティ



GenericWebPart メソッド



GenericWebPart メンバ
WebPart コントロールではないサーバー コントロールが、実行時に本物の WebPart コントロールのように表示されたり、動作したりするように、ラップします。
GenericWebPart データ型で公開されるメンバを以下の表に示します。






名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。(Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。(Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。(Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。(Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。(Control から継承されます。) |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。(Control から継承されます。) |

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

- GenericWebPartのページへのリンク