ProxyWebPartManager イベント

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

関連項目
ProxyWebPartManager クラスSystem.Web.UI.WebControls.WebParts 名前空間
WebPartManager
WebPartConnection
その他の技術情報
ASP.NET Web パーツ ページProxyWebPartManager クラス
アセンブリ: System.Web (system.web.dll 内)


ProxyWebPartManager コントロールは、マスタ ページで WebPartManager コントロールが既に宣言されている場合にコンテンツ ページで静的接続を宣言するという特定のシナリオのために用意されています。
設計上、Web パーツ コントロールを使用する Web ページは、ページ上のすべての Web パーツ コントロールを管理する WebPartManager コントロールを 1 つ (1 つだけ) 含んでいる必要があります。Web パーツ アプリケーションがマスタ ページを使用するときは、通常、マスタ ページに WebPartManager コントロールを配置します。これは、実行時にはすべてのコンテンツ ページがマスタ ページとマージされ、単一の WebPartManager コントロールがすべてのコンテンツ ページからすべての Web パーツ コントロールを管理することになるからです。しかし、開発者がそのようなアプリケーションのコンテンツ ページで静的接続を宣言するときに、制限が生じる場合があります。静的 Web パーツ接続は、<asp:webpartconnection> 要素を <staticconnections> 要素 (この要素自体は <asp:webpartmanager> 要素の子) の子として追加することによってのみ宣言できます。しかし、WebPartManager コントロールがマスタ ページで既に宣言され、使用できる唯一の WebPartManager コントロールとなっているため、開発者はコンテンツ ページで追加の WebPartManager コントロールを宣言して静的接続を追加できません。
このような場合には、ProxyWebPartManager コントロールが WebPartManager コントロールの代わりに使用されます。開発者は、コンテンツ ページで <asp:webpartmanager> 要素の代わりに <asp:proxywebpartmanager> 要素を宣言してから、子要素として静的接続を宣言できます。実行時には、ProxyWebPartManager コントロール内の接続が WebPartManager コントロールの StaticConnections コレクションに単純に追加され、他の接続と同様に扱われます。
ProxyWebPartManager コントロールはこのような特定の開発シナリオでのみ使用されるため、その機能は WebPartManager クラスよりも制限されています。事実、ProxyWebPartManager コントロールはコンテンツ ページ内のWebPartManager コントロールの静的接続を格納するプロキシとして機能しますが、WebPartManager コントロールからは継承されません。このコントロールは Control クラスから直接継承され、いくつかの基本メンバだけをオーバーライドします。EnableTheming、Visible、および SkinID の各プロパティがオーバーライドされ、そのプロパティ自体を使用できないようにする値を割り当てられます。その他の継承されるプロパティは、デザイン時の動作を調整するためにオーバーライドされますが、それ以外の場合は、基本プロパティと同じように動作します。このようなプロパティには、Controls、ClientID などがあります。また、ProxyWebPartManager クラスには非継承プロパティが 1 つあります。StaticConnections プロパティは、それ自体の静的接続のコレクション (ProxyWebPartConnectionCollection オブジェクト) を返します。
メソッドに関しても同様で、ProxyWebPartManager クラスは、主に使用を制限するために、一部のメソッドだけをオーバーライドします。継承された Focus メソッドは、呼び出されたときに例外をスローすることによって、使用できないようにします。CreateControlCollection メソッドは、常に空のコントロール コレクションを返すことによって、コントロールのコレクションを格納できないようにします。また、OnInit メソッドは基本メソッドを呼び出し、StaticConnections プロパティによって参照される接続のコレクションを WebPartManager コントロールの WebPartManager.StaticConnections プロパティに割り当てます。これにより、すべてのコンテンツ ページで宣言されているすべての静的接続がロールアップされ、マスタ ページの WebPartManager コントロールによって管理される接続コレクションの一部となります。

ProxyWebPartManager クラスを使用して、マスタ ページを使用するアプリケーションのコンテンツ ページで静的接続を宣言する方法を次のコード例に示します。この例は、5 つの部分で構成されます。
-
インターフェイスおよび、接続のプロバイダとコンシューマとして機能する 2 つの WebPart コントロールのソース コード
-
アプリケーションの、ユーザー コントロールをホストするマスター Web ページ、コンテンツ ページ、および WebPartManager コントロール
-
ProxyWebPartManager コントロールをホストするコンテンツ Web ページ、2 つのカスタム WebPart コントロール、およびこれらの 2 つのコントロールを接続する静的接続
コード例の最初の部分は、Web ページ上の表示モードをユーザーが変更できるようにするユーザー コントロールです。次のソース コードを .ascx ファイルに保存し、ホストしているマスタ ページの一番上付近にある、このユーザー コントロールの Register ディレクティブの Src 属性に割り当てられているファイル名を付けます。表示モードの詳細、およびこのコントロールのソース コードの説明については、「チュートリアル : Web パーツ ページでの表示モードの変更」を参照してください。
<%@ control language="vb" classname="DisplayModeMenuVB"%> <script runat="server"> ' Use a field to reference the current WebPartManager. Dim _manager As WebPartManager Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) AddHandler Page.InitComplete, AddressOf InitComplete End Sub Sub InitComplete(ByVal sender As Object, ByVal e As System.EventArgs) _manager = WebPartManager.GetCurrentWebPartManager(Page) Dim browseModeName As String = WebPartManager.BrowseDisplayMode.Name ' Fill the dropdown with the names of supported display modes. Dim mode As WebPartDisplayMode For Each mode In _manager.SupportedDisplayModes Dim modeName As String = mode.Name ' Make sure a mode is enabled before adding it. If mode.IsEnabled(_manager) Then Dim item As New ListItem(modeName, modeName) DisplayModeDropdown.Items.Add(item) End If Next mode ' If shared scope is allowed for this user, display the scope-switching ' UI and select the appropriate radio button for the current user scope. If _manager.Personalization.CanEnterSharedScope Then Panel2.Visible = True If _manager.Personalization.Scope = PersonalizationScope.User Then RadioButton1.Checked = True Else RadioButton2.Checked = True End If End If End Sub ' Change the page to the selected display mode. Sub DisplayModeDropdown_SelectedIndexChanged(ByVal sender As Object, _ ByVal e As EventArgs) Dim selectedMode As String = DisplayModeDropdown.SelectedValue Dim mode As WebPartDisplayMode = _ _manager.SupportedDisplayModes(selectedMode) If Not (mode Is Nothing) Then _manager.DisplayMode = mode End If End Sub ' Set the selected item equal to the current display mode. Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs) Dim items As ListItemCollection = DisplayModeDropdown.Items Dim selectedIndex As Integer = _ items.IndexOf(items.FindByText(_manager.DisplayMode.Name)) DisplayModeDropdown.SelectedIndex = selectedIndex End Sub ' Reset all of a user's personalization data for the page. Protected Sub LinkButton1_Click(ByVal sender As Object, _ ByVal e As EventArgs) _manager.Personalization.ResetPersonalizationState() End Sub ' If not in User personalization scope, toggle into it. Protected Sub RadioButton1_CheckedChanged(ByVal sender As Object, _ ByVal e As EventArgs) If _manager.Personalization.Scope = PersonalizationScope.Shared Then _manager.Personalization.ToggleScope() End If End Sub ' If not in Shared scope, and if user is allowed, toggle the scope. Protected Sub RadioButton2_CheckedChanged(ByVal sender As Object, _ ByVal e As EventArgs) If _manager.Personalization.CanEnterSharedScope AndAlso _ _manager.Personalization.Scope = PersonalizationScope.User Then _manager.Personalization.ToggleScope() End If End Sub </script> <div> <asp:Panel ID="Panel1" runat="server" Borderwidth="1" Width="230" BackColor="lightgray" Font-Names="Verdana, Arial, Sans Serif" > <asp:Label ID="Label1" runat="server" Text=" Display Mode" Font-Bold="true" Font-Size="8" Width="120" /> <asp:DropDownList ID="DisplayModeDropdown" runat="server" AutoPostBack="true" Width="120" OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" /> <asp:LinkButton ID="LinkButton1" runat="server" Text="Reset User State" ToolTip="Reset the current user's personalization data for the page." Font-Size="8" OnClick="LinkButton1_Click" /> <asp:Panel ID="Panel2" runat="server" GroupingText="Personalization Scope" Font-Bold="true" Font-Size="8" Visible="false" > <asp:RadioButton ID="RadioButton1" runat="server" Text="User" AutoPostBack="true" GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" /> <asp:RadioButton ID="RadioButton2" runat="server" Text="Shared" AutoPostBack="true" GroupName="Scope" OnCheckedChanged="RadioButton2_CheckedChanged" /> </asp:Panel> </asp:Panel> </div>
<%@ control language="C#" classname="DisplayModeMenuCS"%> <script runat="server"> // Use a field to reference the current WebPartManager. WebPartManager _manager; void Page_Init(object sender, EventArgs e) { Page.InitComplete += new EventHandler(InitComplete); } void InitComplete(object sender, System.EventArgs e) { _manager = WebPartManager.GetCurrentWebPartManager(Page); String browseModeName = WebPartManager.BrowseDisplayMode.Name; // Fill the dropdown with the names of supported display modes. foreach (WebPartDisplayMode mode in _manager.SupportedDisplayModes) { String modeName = mode.Name; // Make sure a mode is enabled before adding it. if (mode.IsEnabled(_manager)) { ListItem item = new ListItem(modeName, modeName); DisplayModeDropdown.Items.Add(item); } } // If shared scope is allowed for this user, display the scope-switching // UI and select the appropriate radio button for the current user scope. if (_manager.Personalization.CanEnterSharedScope) { Panel2.Visible = true; if (_manager.Personalization.Scope == PersonalizationScope.User) RadioButton1.Checked = true; else RadioButton2.Checked = true; } } // Change the page to the selected display mode. void DisplayModeDropdown_SelectedIndexChanged(object sender, EventArgs e) { String selectedMode = DisplayModeDropdown.SelectedValue; WebPartDisplayMode mode = _manager.SupportedDisplayModes[selectedMode]; if (mode != null) _manager.DisplayMode = mode; } // Set the selected item equal to the current display mode. void Page_PreRender(object sender, EventArgs e) { ListItemCollection items = DisplayModeDropdown.Items; int selectedIndex = items.IndexOf(items.FindByText(_manager.DisplayMode.Name)); DisplayModeDropdown.SelectedIndex = selectedIndex; } // Reset all of a user's personalization data for the page. protected void LinkButton1_Click(object sender, EventArgs e) { _manager.Personalization.ResetPersonalizationState(); } // If not in User personalization scope, toggle into it. protected void RadioButton1_CheckedChanged(object sender, EventArgs e) { if (_manager.Personalization.Scope == PersonalizationScope.Shared) _manager.Personalization.ToggleScope(); } // If not in Shared scope, and if user is allowed, toggle the scope. protected void RadioButton2_CheckedChanged(object sender, EventArgs e) { if (_manager.Personalization.CanEnterSharedScope && _manager.Personalization.Scope == PersonalizationScope.User) _manager.Personalization.ToggleScope(); } </script> <div> <asp:Panel ID="Panel1" runat="server" Borderwidth="1" Width="230" BackColor="lightgray" Font-Names="Verdana, Arial, Sans Serif" > <asp:Label ID="Label1" runat="server" Text=" Display Mode" Font-Bold="true" Font-Size="8" Width="120" /> <asp:DropDownList ID="DisplayModeDropdown" runat="server" AutoPostBack="true" Width="120" OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" /> <asp:LinkButton ID="LinkButton1" runat="server" Text="Reset User State" ToolTip="Reset the current user's personalization data for the page." Font-Size="8" OnClick="LinkButton1_Click" /> <asp:Panel ID="Panel2" runat="server" GroupingText="Personalization Scope" Font-Bold="true" Font-Size="8" Visible="false" > <asp:RadioButton ID="RadioButton1" runat="server" Text="User" AutoPostBack="true" GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" /> <asp:RadioButton ID="RadioButton2" runat="server" Text="Shared" AutoPostBack="true" GroupName="Scope" OnCheckedChanged="RadioButton2_CheckedChanged" /> </asp:Panel> </asp:Panel> </div>
コード例の 2 番目の部分は、インターフェイスとコントロールのソース コードです。ソース ファイルには、IZipCode という名前の単純なインターフェイスが含まれています。また、インターフェイスを実装し、プロバイダ コントロールとして機能する、ZipCodeWebPart という名前の WebPart クラスも含まれています。このクラスの ProvideIZipCode メソッドは、インターフェイスの唯一のメンバを実装するコールバック メソッドです。このメソッドは、インターフェイスのインスタンスを単純に返します。このメソッドは、それ自体のメタデータ内では、ConnectionProvider 属性でマークされています。これは、メソッドをプロバイダのコネクション ポイントのコールバック メソッドとして識別するための機構です。もう 1 つの WebPart クラスは WeatherWebPart という名前で、接続のコンシューマとして動作します。このクラスには、プロバイダ コントロールから IZipCode インターフェイスのインスタンスを取得する、GetZipCode という名前のメソッドがあります。このメソッドは、それ自体のメタデータ内では、ConnectionConsumer 属性によってコンシューマのコネクション ポイント メソッドとしてマークされています。
コード例を実行するためには、このソース コードをコンパイルする必要があります。それを明示的にコンパイルし、コンパイル済みのアセンブリを Web サイトの Bin フォルダまたはグローバル アセンブリ キャッシュに配置できます。サイトの App_Code フォルダにソース コードを配置し、実行時に動的にコンパイルすることもできます。このコード例は、動的コンパイルを使用します。コンパイル方法を示すチュートリアルについては、「チュートリアル : カスタム サーバー コントロールの開発と使用」を参照してください。
Imports System Imports System.Web Imports System.Web.Security Imports System.Security.Permissions Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.WebControls.WebParts Namespace Samples.AspNet.VB.Controls <AspNetHostingPermission(SecurityAction.Demand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ <AspNetHostingPermission(SecurityAction.InheritanceDemand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ Public Interface IZipCode Property ZipCode() As String End Interface <AspNetHostingPermission(SecurityAction.Demand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ <AspNetHostingPermission(SecurityAction.InheritanceDemand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ Public Class ZipCodeWebPart Inherits WebPart Implements IZipCode Private zipCodeText As String = String.Empty Private input As TextBox Private send As Button Public Sub New() End Sub ' Make the implemented property personalizable to save ' the Zip Code between browser sessions. <Personalizable()> _ Public Property ZipCode() As String _ Implements IZipCode.ZipCode Get Return zipCodeText End Get Set(ByVal value As String) zipCodeText = value End Set End Property ' This is the callback method that returns the provider. <ConnectionProvider("Zip Code Provider", "ZipCodeProvider")> _ Public Function ProvideIZipCode() As IZipCode Return Me End Function Protected Overrides Sub CreateChildControls() Controls.Clear() input = New TextBox() Me.Controls.Add(input) send = New Button() send.Text = "Enter 5-digit Zip Code" AddHandler send.Click, AddressOf Me.submit_Click Me.Controls.Add(send) End Sub Private Sub submit_Click(ByVal sender As Object, _ ByVal e As EventArgs) If input.Text <> String.Empty Then zipCodeText = Page.Server.HtmlEncode(input.Text) input.Text = String.Empty End If End Sub End Class <AspNetHostingPermission(SecurityAction.Demand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ <AspNetHostingPermission(SecurityAction.InheritanceDemand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ Public Class WeatherWebPart Inherits WebPart Private _provider As IZipCode Private _zipSearch As String Private DisplayContent As Label ' This method is identified by the ConnectionConsumer ' attribute, and is the mechanism for connecting with ' the provider. <ConnectionConsumer("Zip Code Consumer", "ZipCodeConsumer")> _ Public Sub GetIZipCode(ByVal Provider As IZipCode) _provider = Provider End Sub Protected Overrides Sub OnPreRender(ByVal e As EventArgs) EnsureChildControls() If Not (Me._provider Is Nothing) Then _zipSearch = _provider.ZipCode.Trim() DisplayContent.Text = "My Zip Code is: " + _zipSearch End If End Sub 'OnPreRender Protected Overrides Sub CreateChildControls() Controls.Clear() DisplayContent = New Label() Me.Controls.Add(DisplayContent) End Sub End Class End Namespace
namespace Samples.AspNet.CS.Controls { using System; using System.Web; using System.Web.Security; using System.Security.Permissions; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] public interface IZipCode { string ZipCode { get; set;} } [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] public class ZipCodeWebPart : WebPart, IZipCode { string zipCodeText = String.Empty; TextBox input; Button send; public ZipCodeWebPart() { } // Make the implemented property personalizable to save // the Zip Code between browser sessions. [Personalizable()] public virtual string ZipCode { get { return zipCodeText; } set { zipCodeText = value; } } // This is the callback method that returns the provider. [ConnectionProvider("Zip Code Provider", "ZipCodeProvider")] public IZipCode ProvideIZipCode() { return this; } protected override void CreateChildControls() { Controls.Clear(); input = new TextBox(); this.Controls.Add(input); send = new Button(); send.Text = "Enter 5-digit Zip Code"; send.Click += new EventHandler(this.submit_Click); this.Controls.Add(send); } private void submit_Click(object sender, EventArgs e) { if (input.Text != String.Empty) { zipCodeText = Page.Server.HtmlEncode(input.Text); input.Text = String.Empty; } } } [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] public class WeatherWebPart : WebPart { private IZipCode _provider; string _zipSearch; Label DisplayContent; // This method is identified by the ConnectionConsumer // attribute, and is the mechanism for connecting with // the provider. [ConnectionConsumer("Zip Code Consumer", "ZipCodeConsumer")] public void GetIZipCode(IZipCode Provider) { _provider = Provider; } protected override void OnPreRender(EventArgs e) { EnsureChildControls(); if (this._provider != null) { _zipSearch = _provider.ZipCode.Trim(); DisplayContent.Text = "My Zip Code is: " + _zipSearch; } } protected override void CreateChildControls() { Controls.Clear(); DisplayContent = new Label(); this.Controls.Add(DisplayContent); } } }
コード例の 3 番目の部分はマスタ ページです。次のソース コードをコピーしてファイルに保存し、使用言語に応じて、MasterPageCS.master または MasterPageVB.master という名前をファイルに付けてください。マスタ ページにはユーザー コントロールを登録するための Register ディレクティブが含まれており、ページの本体でユーザー コントロール自体を参照しています。また、マスタ ページは、このページおよび関連するすべてのコンテンツ ページで使用される単一の <asp:webpartmanager> 要素を宣言しています。マスタ ページには、コンテンツ ページが挿入されるページ内の位置を宣言する <asp: contentplaceholder> 要素もあります。
<%@ Master Language="VB" %> <%@ register tagprefix="uc1" tagname="DisplayModeMenuVB" src="~/displaymodemenuvb.ascx" %> <!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>Master page with connections in content pages</title> </head> <body> <h2>Contoso, Ltd.</h2> <hr /> <form id="form1" runat="server"> <asp:webpartmanager runat="server" id="WebPartManager1" /> <uc1:displaymodemenuvb id="menu1" runat="server" /> <div> <asp:contentplaceholder id="ContentPlaceHolder1" runat="server" /> </div> </form> </body> </html>
<%@ Master Language="C#" %> <%@ register tagprefix="uc1" tagname="DisplayModeMenuCS" src="~/displaymodemenucs.ascx" %> <!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>Master page with connections in content pages</title> </head> <body> <h2>Contoso, Ltd.</h2> <hr /> <form id="form1" runat="server"> <asp:webpartmanager runat="server" id="WebPartManager1" /> <uc1:displaymodemenucs id="menu1" runat="server" /> <div> <asp:contentplaceholder id="ContentPlaceHolder1" runat="server" /> </div> </form> </body> </html>
コード例の 4 番目の部分はコンテンツ ページです。次のソース コードをコピーして、拡張子が .aspx のファイルに保存してください。コンテンツ ページの Page ディレクティブには、マスタ ページを参照するための MasterFile 属性が含まれています。また、このページには、接続に参加し、動的にコンパイルされた WebPart カスタム コントロールを格納する App_Code フォルダにファイルを登録するための Register ディレクティブもあります。ページの <asp:content> タグ内には、<asp:proxywebpartmanager> 要素があり、接続の詳細を宣言します。この要素には、<asp:webpartconnection> を子要素として持つ、子要素の <staticconnections> があります。ページの <script> タグ内では、Button1_Click メソッドが、マスタ ページのメイン WebPartManager コントロールとコンテンツ ページの ProxyWebPartManager コントロールにアクセスするコードを追加し、それらの詳細の一部をページに書き込みます。
<%@ Page Language="VB" MasterPageFile="~/MasterPageVB.master" Title="Connections Page" %> <%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" %> <script runat="server"> Protected Sub Button1_Click(ByVal sender As Object, _ ByVal e As EventArgs) Dim lblText As StringBuilder = New StringBuilder() If Not (Page.Master.FindControl("WebPartManager1") Is Nothing) Then Dim theMgr As WebPartManager = _ CType(Page.Master.FindControl("WebPartManager1"), WebPartManager) lblText.Append("WebPartManager: <br /><pre>" & _ " Master page file is " & Page.MasterPageFile & "<br />" & _ " ID is " & theMgr.ID & "<br />" & _ " Connection count is " & _ theMgr.StaticConnections.Count.ToString() & "<br />" & _ " WebParts count is " & _ theMgr.WebParts.Count.ToString() & "</pre><br />") End If If Not (proxymgr1 Is Nothing) Then lblText.Append("ProxyWebPartManager: <br /><pre>" & _ " Content page file is " & Request.Path & "<br />" & _ " ID is " & proxymgr1.ID & "<br />" & _ " Connection count is " & _ proxymgr1.StaticConnections.Count.ToString() & "</pre><br />") End If Literal1.Text = lblText.ToString() End Sub </script> <asp:Content ID="Content1" Runat="Server" ContentPlaceHolderID="ContentPlaceHolder1" > <asp:proxywebpartmanager id="proxymgr1" runat="server"> <staticconnections> <asp:webpartconnection id="connection1" consumerconnectionpointid="ZipCodeConsumer" consumerid="zipConsumer" providerconnectionpointid="ZipCodeProvider" providerid="zipProvider" /> </staticconnections> </asp:proxywebpartmanager> <div> <asp:webpartzone id="zone1" runat="server"> <zonetemplate> <aspsample:zipcodewebpart id="zipProvider" runat="server" title="Zip Code Provider" /> <aspsample:weatherwebpart id="zipConsumer" runat="server" title="Zip Code Consumer" /> </zonetemplate> </asp:webpartzone> </div> <div> <asp:button id="Button1" runat="server" text="WebPartManager Information" onclick="Button1_Click" /> <br /> <asp:literal id="Literal1" runat="server" /> </div> <asp:connectionszone id="ConnectionsZone1" runat="server" /> </asp:Content>
<%@ Page Language="C#" MasterPageFile="~/MasterPageCS.master" Title="Connections Page" %> <%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" %> <script runat="server"> protected void Button1_Click(object sender, EventArgs e) { StringBuilder lblText = new StringBuilder(); if (Page.Master.FindControl("WebPartManager1") != null) { WebPartManager theMgr = (WebPartManager)Page.Master.FindControl("WebPartManager1"); lblText.Append("WebPartManager: <br /><pre>" + " Master page file is " + Page.MasterPageFile + "<br />" + " ID is " + theMgr.ID + "<br />" + " Connection count is " + theMgr.StaticConnections.Count.ToString() + "<br />" + " WebParts count is " + theMgr.WebParts.Count.ToString() + "</pre><br />"); } if (proxymgr1 != null) { lblText.Append("ProxyWebPartManager: <br /><pre>" + " Content page file is " + Request.Path + "<br />" + " ID is " + proxymgr1.ID + "<br />" + " Connection count is " + proxymgr1.StaticConnections.Count.ToString() + "</pre><br />"); } Literal1.Text = lblText.ToString(); } </script> <asp:Content ID="Content1" Runat="Server" ContentPlaceHolderID="ContentPlaceHolder1" > <asp:proxywebpartmanager id="proxymgr1" runat="server"> <staticconnections> <asp:webpartconnection id="connection1" consumerconnectionpointid="ZipCodeConsumer" consumerid="zipConsumer" providerconnectionpointid="ZipCodeProvider" providerid="zipProvider" /> </staticconnections> </asp:proxywebpartmanager> <div> <asp:webpartzone id="zone1" runat="server"> <zonetemplate> <aspsample:zipcodewebpart id="zipProvider" runat="server" title="Zip Code Provider" /> <aspsample:weatherwebpart id="zipConsumer" runat="server" title="Zip Code Consumer" /> </zonetemplate> </asp:webpartzone> </div> <div> <asp:button id="Button1" runat="server" text="WebPartManager Information" onclick="Button1_Click" /> <br /> </div> <asp:connectionszone id="ConnectionsZone1" runat="server" /> <asp:literal id="Literal1" runat="server" /> </asp:Content>
ページをブラウザに読み込んだら、[WebPartManager Information] ボタンをクリックして、マスタ ページの WebPartManager コントロールに関する情報とコンテンツ ページの ProxyWebPartManager コントロールに関する情報を確認します。たとえば、それぞれのコントロールの静的接続を追跡するプロパティ (StaticConnections プロパティ) の値は同じです。また、WebPartManager コントロールにはそれが管理する WebPart コントロールの数を追跡する WebParts プロパティがありますが、静的接続を格納することが唯一の目的である ProxyWebPartManager コントロールにはそのようなプロパティはありません。


System.Web.UI.Control
System.Web.UI.WebControls.WebParts.ProxyWebPartManager


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


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


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


ProxyWebPartManager プロパティ



関連項目
ProxyWebPartManager クラスSystem.Web.UI.WebControls.WebParts 名前空間
WebPartManager
WebPartConnection
その他の技術情報
ASP.NET Web パーツ ページProxyWebPartManager メソッド



関連項目
ProxyWebPartManager クラスSystem.Web.UI.WebControls.WebParts 名前空間
WebPartManager
WebPartConnection
その他の技術情報
ASP.NET Web パーツ ページProxyWebPartManager メンバ
コンテンツ ページが関連付けられているマスタ ページで WebPartManager コントロールが宣言されている場合に、開発者がコンテンツ ページで静的接続を宣言できるようにします。
ProxyWebPartManager データ型で公開されるメンバを以下の表に示します。






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

関連項目
ProxyWebPartManager クラスSystem.Web.UI.WebControls.WebParts 名前空間
WebPartManager
WebPartConnection
その他の技術情報
ASP.NET Web パーツ ページ- ProxyWebPartManagerのページへのリンク