ProxyWebPartManager クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
WebPartManager コントロールがコンテンツ ページの関連マスター ページで宣言されている場合に、開発者がコンテンツ ページで静的接続を宣言する方法を提供します。
public ref class ProxyWebPartManager : System::Web::UI::Control
[System.ComponentModel.Bindable(false)]
public class ProxyWebPartManager : System.Web.UI.Control
[<System.ComponentModel.Bindable(false)>]
type ProxyWebPartManager = class
inherit Control
Public Class ProxyWebPartManager
Inherits Control
- 継承
- 属性
例
次のコード例では、 クラスを使用して、マスター ページを ProxyWebPartManager 使用するアプリケーションのコンテンツ ページで静的接続を宣言する方法を示します。 この例には、次の 5 つの部分があります。
ページ上の Web パーツ表示モードを変更できるユーザー コントロール。
接続のプロバイダーとコンシューマーとして機能するインターフェイスと 2 つの WebPart コントロールのソース コード。
アプリケーションのユーザー コントロール、コンテンツ ページ、およびコントロールをホストする WebPartManager マスター Web ページ。
コントロール、2 つのカスタム WebPart コントロール、および 2 つのコントロールを接続するための静的接続をホストProxyWebPartManagerするコンテンツ Web ページ。
サンプル ページを実行する方法の説明。
このコード例の最初の部分は、ユーザーが Web ページの表示モードを変更できるようにするユーザー コントロールです。 次のソース コードを .ascx ファイルに保存します。このユーザー コントロールの ディレクティブのRegister
属性にSrc
割り当てられているファイル名を指定します。このファイル名は、ホスト マスター ページの上部付近にあります。 表示モードの詳細と、このコントロールのソース コードの説明については、「 チュートリアル: Web パーツ ページでの表示モードの変更」を参照してください。
<%@ 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"
AssociatedControlID="DisplayModeDropdown"/>
<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="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"
AssociatedControlID="DisplayModeDropdown"/>
<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
の単純なインターフェイスが含まれています。 インターフェイスを実装し、 WebPart プロバイダー コントロールとして機能する という名前 ZipCodeWebPart
のクラスもあります。 その ProvideIZipCode
メソッドは、インターフェイスの唯一のメンバーを実装するコールバック メソッドです。 メソッドは単に インターフェイスのインスタンスを返します。 メソッドは、そのメタデータに ConnectionProvider
属性でマークされていることに注意してください。 これは、プロバイダーの接続ポイントのコールバック メソッドとして メソッドを識別するためのメカニズムです。 もう 1 つの WebPart クラスは という名前 WeatherWebPart
で、接続のコンシューマーとして機能します。 このクラスには、 という名前 GetZipCode
のメソッドがあり、プロバイダー コントロールからインターフェイスの IZipCode
インスタンスを取得します。 このメソッドは、メタデータに 属性を持つ ConnectionConsumer
コンシューマーの接続ポイント メソッドとしてマークされていることに注意してください。
コード例を実行するには、このソース コードをコンパイルする必要があります。 明示的にコンパイルし、結果のアセンブリを Web サイトの Bin フォルダーまたはグローバル アセンブリ キャッシュに配置できます。 または、ソース コードをサイトの App_Code フォルダーに配置して、実行時に動的にコンパイルすることもできます。 このコード例では、動的コンパイルを使用します。 コンパイル方法を示すチュートリアルについては、「 チュートリアル: カスタム Web サーバー コントロールの開発と使用」を参照してください。
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 (!string.IsNullOrEmpty(input.Text))
{
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);
}
}
}
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
Protected Overrides Sub CreateChildControls()
Controls.Clear()
DisplayContent = New Label()
Me.Controls.Add(DisplayContent)
End Sub
End Class
End Namespace
コード例の 3 番目の部分は、マスター ページです。 次のソース コードを取得し、ファイルに保存し、MasterPageCS.master または MasterPageVB.master という名前を付ける必要があります (使用する言語によって異なります)。 マスター ページには、ユーザー コントロールを Register
登録するための ディレクティブが含まれており、ページの本文でユーザー コントロール自体を参照します。 マスター ページでは、このページおよび関連するすべてのコンテンツ ページに使用される 1 つの <asp:webpartmanager>
要素も宣言されます。 最後に、マスター ページには、 <asp: contentplaceholder>
コンテンツ ページが挿入されるページ内のポイントを宣言する要素があります。
<%@ 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 xmlns="http://www.w3.org/1999/xhtml" >
<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>
<%@ 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 xmlns="http://www.w3.org/1999/xhtml" >
<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>
コード例の 4 番目の部分はコンテンツ ページです。 次のソース コードをコピーし、.aspx拡張子を持つファイルに保存する必要があります。 その Page
ディレクティブには、マスター ページを MasterFile
参照する属性が含まれていることに注意してください。 また、このページには Register
、接続に参加する動的にコンパイルされたカスタム WebPart コントロールを含む App_Code フォルダーにファイルを登録する ディレクティブがあります。 ページの<asp:content>
タグ内には、子<staticconnections>
要素を持つ 要素があり<asp:proxywebpartmanager>
、接続の詳細を宣言する子<asp:webpartconnection>
要素があります。 ページ上の <script>
タグ内で、 メソッドは Button1_Click
、マスター ページのメイン WebPartManager コントロールとコンテンツ ページのコントロールにアクセスし ProxyWebPartManager 、その詳細の一部をページに書き込むコードをいくつか追加します。
<%@ 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>
<%@ 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>
ブラウザーでページを読み込んだ後、[ WebPartManager 情報 ] ボタンをクリックし、マスター ページのコントロールとコンテンツ ページのコントロールに関 WebPartManager する ProxyWebPartManager 情報を確認します。 たとえば、静的接続 (プロパティ) を追跡するそれぞれのプロパティで、両方とも同じ数を持つことに StaticConnections 注意してください。 また、WebPartManagerコントロールにはWebParts管理するコントロールの数を追跡するプロパティがありますが、静的接続をProxyWebPartManager含める唯一のWebPart目的であるため、コントロールにはそのようなプロパティはありません。
注釈
コントロールは ProxyWebPartManager 、マスター ページでコントロールが既に宣言されている場合 WebPartManager に、コンテンツ ページで静的接続を宣言する特定のシナリオに対して存在します。
設計上、Web パーツ コントロールを使用する Web ページには、ページ上のすべての Web パーツ コントロールを管理する 1 つのコントロール (および 1 つだけ) WebPartManager が含まれている必要があります。 Web パーツ アプリケーションでマスター ページを使用する場合、すべてのコンテンツ ページが実行時にマスター ページとマージされ、1 つのWebPartManagerコントロールですべてのコンテンツ ページのすべての Web パーツ コントロールが管理されるため、マスター ページにコントロールを配置WebPartManagerするのが一般的です。 ただし、開発者がこのようなアプリケーションのコンテンツ ページで静的接続を宣言する場合は、制限に直面している可能性があります。 静的 Web パーツ接続は、要素を要素の<staticconnections>
子として追加<asp:webpartconnection>
することによってのみ宣言できます。要素自体は要素の<asp:webpartmanager>
子である必要があります。 ただし、 WebPartManager コントロールはマスター ページで既に宣言されており、許可されている WebPartManager コントロールであるため、開発者はコンテンツ ページで追加 WebPartManager のコントロールを宣言して静的接続を追加することはできません。
ProxyWebPartManagerこのシナリオでは、コントロールがコントロールのWebPartManager代わりに使用されます。 開発者は、 <asp:proxywebpartmanager>
コンテンツ ページ内の要素ではなく要素を <asp:webpartmanager>
宣言し、静的接続を子要素として宣言できます。 実行時に、コントロール内の ProxyWebPartManager 接続は単にコントロールのコレクションに StaticConnections 追加され、他の WebPartManager 接続と同様に処理されます。
コントロールは、この特定の ProxyWebPartManager 開発シナリオでのみ使用されるため、 クラスよりも機能が制限されています WebPartManager 。 実際、コントロールは、コンテンツ ページ内の ProxyWebPartManager コントロールの静的接続を WebPartManager 含むプロキシとして機能しますが、コントロールから WebPartManager 継承されません。 クラスから Control 直接継承され、一部の基本メンバーのみがオーバーライドされます。 、EnableThemingVisible、および SkinID の各プロパティはオーバーライドされ、割り当てられた値によって使用できなくなります。 その他の継承されたプロパティは、デザイン時の動作を調整するためにオーバーライドされますが、それ以外の場合は基本プロパティと同じ動作になります。 これには、 プロパティと ClientID プロパティがControls含まれます。 最後に、クラスには ProxyWebPartManager 継承されていないプロパティが 1 つ含まれます。 プロパティは StaticConnections 、静的接続の独自のコレクション ( ProxyWebPartConnectionCollection オブジェクト) を返します。
メソッドに関しては、クラスも ProxyWebPartManager 同様に少数のメソッドのみをオーバーライドし、主に使用を制限します。 継承されたメソッドは、呼び出された Focus 場合に例外をスローすることによって使用できなくなります。 メソッドは CreateControlCollection 常に空のコントロール コレクションを返します。これは、コントロールのコレクションを格納できないようにする効果があります。 最後に、 メソッドはOnInit基本メソッドを呼び出し、 プロパティによって参照される接続のコレクションをStaticConnectionsコントロールの プロパティにWebPartManager.StaticConnectionsWebPartManager割り当てます。 これは、すべてのコンテンツ ページで宣言されているすべての静的接続をロールアップし、マスター ページ内のコントロールによって WebPartManager 維持される接続コレクションの一部にする効果があります。
コンストラクター
ProxyWebPartManager() |
ProxyWebPartManager クラスの新しいインスタンスを初期化します。 |
プロパティ
Adapter |
コントロール用のブラウザー固有のアダプターを取得します。 (継承元 Control) |
AppRelativeTemplateSourceDirectory |
このコントロールが含まれている Page オブジェクトまたは UserControl オブジェクトのアプリケーション相対の仮想ディレクトリを取得または設定します。 (継承元 Control) |
BindingContainer |
このコントロールのデータ バインディングを格納しているコントロールを取得します。 (継承元 Control) |
ChildControlsCreated |
サーバー コントロールの子コントロールが作成されたかどうかを示す値を取得します。 (継承元 Control) |
ClientID |
ASP.NET によって生成される HTML マークアップのコントロール ID を取得します。 |
ClientIDMode |
ClientID プロパティの値を生成するために使用されるアルゴリズムを取得または設定します。 (継承元 Control) |
ClientIDSeparator |
ClientID プロパティで使用される区切り記号を表す文字値を取得します。 (継承元 Control) |
Context |
現在の Web 要求に対するサーバー コントロールに関連付けられている HttpContext オブジェクトを取得します。 (継承元 Control) |
Controls |
UI 階層内の指定されたサーバー コントロールの子コントロールを表す ControlCollection オブジェクトを取得します。 |
DataItemContainer |
名前付けコンテナーが IDataItemContainer を実装している場合、名前付けコンテナーへの参照を取得します。 (継承元 Control) |
DataKeysContainer |
名前付けコンテナーが IDataKeysControl を実装している場合、名前付けコンテナーへの参照を取得します。 (継承元 Control) |
DesignMode |
コントロールがデザイン サーフェイスで使用されているかどうかを示す値を取得します。 (継承元 Control) |
EnableTheming |
基本プロパティをオーバーライドして、テーマが使用されないようにします。 |
EnableViewState |
要求元クライアントに対して、サーバー コントロールがそのビュー状態と、そこに含まれる任意の子のコントロールのビュー状態を保持するかどうかを示す値を取得または設定します。 (継承元 Control) |
Events |
コントロールのイベント ハンドラー デリゲートのリストを取得します。 このプロパティは読み取り専用です。 (継承元 Control) |
HasChildViewState |
現在のサーバー コントロールの子コントロールが、保存されたビューステートの設定を持っているかどうかを示す値を取得します。 (継承元 Control) |
ID |
サーバー コントロールに割り当てられたプログラム ID を取得または設定します。 (継承元 Control) |
IdSeparator |
コントロール ID を区別するために使用する文字を取得します。 (継承元 Control) |
IsChildControlStateCleared |
このコントロールに含まれているコントロールに、コントロールの状態が設定されているかどうかを示す値を取得します。 (継承元 Control) |
IsTrackingViewState |
サーバー コントロールがビューステートの変更を保存しているかどうかを示す値を取得します。 (継承元 Control) |
IsViewStateEnabled |
このコントロールでビューステートが有効かどうかを示す値を取得します。 (継承元 Control) |
LoadViewStateByID |
コントロールがインデックスではなく ID によりビューステートの読み込みを行うかどうかを示す値を取得します。 (継承元 Control) |
NamingContainer |
同じ ID プロパティ値を持つ複数のサーバー コントロールを区別するための一意の名前空間を作成する、サーバー コントロールの名前付けコンテナーへの参照を取得します。 (継承元 Control) |
Page |
サーバー コントロールを含んでいる Page インスタンスへの参照を取得します。 (継承元 Control) |
Parent |
ページ コントロールの階層構造における、サーバー コントロールの親コントロールへの参照を取得します。 (継承元 Control) |
RenderingCompatibility |
レンダリングされる HTML と互換性がある ASP.NET のバージョンを表す値を取得します。 (継承元 Control) |
Site |
デザイン サーフェイスに現在のコントロールを表示するときに、このコントロールをホストするコンテナーに関する情報を取得します。 (継承元 Control) |
SkinID |
基本プロパティをオーバーライドして、値が割り当てられないようにします。 |
StaticConnections |
コンテンツ ページの |
TemplateControl |
このコントロールを格納しているテンプレートへの参照を取得または設定します。 (継承元 Control) |
TemplateSourceDirectory |
現在のサーバー コントロールを格納している Page または UserControl の仮想ディレクトリを取得します。 (継承元 Control) |
UniqueID |
階層構造で修飾されたサーバー コントロールの一意の ID を取得します。 (継承元 Control) |
ValidateRequestMode |
ブラウザーからのクライアント入力の安全性をコントロールで調べるかどうかを示す値を取得または設定します。 (継承元 Control) |
ViewState |
同一のページに対する複数の要求にわたって、サーバー コントロールのビューステートを保存し、復元できるようにする状態情報のディクショナリを取得します。 (継承元 Control) |
ViewStateIgnoresCase |
StateBag オブジェクトが大文字小文字を区別しないかどうかを示す値を取得します。 (継承元 Control) |
ViewStateMode |
このコントロールのビューステート モードを取得または設定します。 (継承元 Control) |
Visible |
基本プロパティをオーバーライドして、値が割り当てられないようにします。 |
メソッド
AddedControl(Control, Int32) |
子コントロールが Control オブジェクトの Controls コレクションに追加された後に呼び出されます。 (継承元 Control) |
AddParsedSubObject(Object) |
XML または HTML のいずれかの要素が解析されたことをサーバー コントロールに通知し、サーバー コントロールの ControlCollection オブジェクトに要素を追加します。 (継承元 Control) |
ApplyStyleSheetSkin(Page) |
ページのスタイル シートに定義されたスタイル プロパティをコントロールに適用します。 (継承元 Control) |
BeginRenderTracing(TextWriter, Object) |
レンダリング データのデザイン時のトレースを開始します。 (継承元 Control) |
BuildProfileTree(String, Boolean) |
ページのトレースが有効な場合、サーバー コントロールに関する情報を収集し、これを表示するために Trace プロパティに渡します。 (継承元 Control) |
ClearCachedClientID() |
キャッシュされた ClientID 値を |
ClearChildControlState() |
サーバー コントロールのすべての子コントロールについて、コントロールの状態情報を削除します。 (継承元 Control) |
ClearChildState() |
サーバー コントロールのすべての子コントロールのビューステート情報およびコントロールの状態情報を削除します。 (継承元 Control) |
ClearChildViewState() |
サーバー コントロールのすべての子コントロールのビューステート情報を削除します。 (継承元 Control) |
ClearEffectiveClientIDMode() |
現在のコントロール インスタンスおよびすべての子コントロールの ClientIDMode プロパティを Inherit に設定します。 (継承元 Control) |
CreateChildControls() |
ASP.NET ページ フレームワークによって呼び出され、ポストバックまたはレンダリングの準備として、合成ベースの実装を使うサーバー コントロールに対し、それらのコントロールに含まれる子コントロールを作成するように通知します。 (継承元 Control) |
CreateControlCollection() |
基本プロパティをオーバーライドして、ProxyWebPartManager コントロールにコントロールが格納されないようにします。 |
DataBind() |
呼び出されたサーバー コントロールとそのすべての子コントロールにデータ ソースをバインドします。 (継承元 Control) |
DataBind(Boolean) |
DataBinding イベントを発生させるオプションを指定して、呼び出されたサーバー コントロールとそのすべての子コントロールにデータ ソースをバインドします。 (継承元 Control) |
DataBindChildren() |
データ ソースをサーバー コントロールの子コントロールにバインドします。 (継承元 Control) |
Dispose() |
サーバー コントロールが、メモリから解放される前に最終的なクリーンアップを実行できるようにします。 (継承元 Control) |
EndRenderTracing(TextWriter, Object) |
レンダリング データのデザイン時のトレースを終了します。 (継承元 Control) |
EnsureChildControls() |
サーバー コントロールに子コントロールが含まれているかどうかを確認します。 含まれていない場合、子コントロールを作成します。 (継承元 Control) |
EnsureID() |
ID が割り当てられていないコントロールの ID を作成します。 (継承元 Control) |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
FindControl(String) |
指定した |
FindControl(String, Int32) |
指定した |
Focus() |
基本メソッドをオーバーライドして、メソッドが呼び出されないようにします。 |
GetDesignModeState() |
コントロールのデザイン時データを取得します。 (継承元 Control) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetRouteUrl(Object) |
ルート パラメーターのセットに対応する URL を取得します。 (継承元 Control) |
GetRouteUrl(RouteValueDictionary) |
ルート パラメーターのセットに対応する URL を取得します。 (継承元 Control) |
GetRouteUrl(String, Object) |
ルート パラメーターのセットおよびルート名に対応する URL を取得します。 (継承元 Control) |
GetRouteUrl(String, RouteValueDictionary) |
ルート パラメーターのセットおよびルート名に対応する URL を取得します。 (継承元 Control) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
GetUniqueIDRelativeTo(Control) |
指定されたコントロールの UniqueID プロパティのプレフィックス部分を返します。 (継承元 Control) |
HasControls() |
サーバー コントロールに子コントロールが含まれているかどうかを確認します。 (継承元 Control) |
HasEvents() |
コントロールまたは子コントロールに対してイベントが登録されているかどうかを示す値を返します。 (継承元 Control) |
IsLiteralContent() |
サーバー コントロールがリテラルな内容だけを保持しているかどうかを決定します。 (継承元 Control) |
LoadControlState(Object) |
SaveControlState() メソッドによって保存された前回のページ要求からコントロールの状態情報を復元します。 (継承元 Control) |
LoadViewState(Object) |
SaveViewState() メソッドによって保存された前回のページ要求からビューステート情報を復元します。 (継承元 Control) |
MapPathSecure(String) |
仮想パス (絶対パスまたは相対パス) の割り当て先の物理パスを取得します。 (継承元 Control) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
OnBubbleEvent(Object, EventArgs) |
サーバー コントロールのイベントをページの UI サーバー コントロールの階層構造に渡すかどうかを決定します。 (継承元 Control) |
OnDataBinding(EventArgs) |
DataBinding イベントを発生させます。 (継承元 Control) |
OnInit(EventArgs) |
Init イベントを発生させ、コントロールを初期化します。 |
OnLoad(EventArgs) |
Load イベントを発生させます。 (継承元 Control) |
OnPreRender(EventArgs) |
PreRender イベントを発生させます。 (継承元 Control) |
OnUnload(EventArgs) |
Unload イベントを発生させます。 (継承元 Control) |
OpenFile(String) |
ファイルの読み込みで使用される Stream を取得します。 (継承元 Control) |
RaiseBubbleEvent(Object, EventArgs) |
イベントのソースおよびその情報をコントロールの親に割り当てます。 (継承元 Control) |
RemovedControl(Control) |
Control オブジェクトの Controls コレクションから子コントロールが削除された後に呼び出されます。 (継承元 Control) |
Render(HtmlTextWriter) |
提供されたクライアントに表示される内容を書き込む HtmlTextWriter オブジェクトに、サーバー コントロールの内容を送信します。 (継承元 Control) |
RenderChildren(HtmlTextWriter) |
提供された HtmlTextWriter オブジェクトに対してサーバー コントロールの子のコンテンツを出力すると、クライアントで表示されるコンテンツが記述されます。 (継承元 Control) |
RenderControl(HtmlTextWriter) |
指定の HtmlTextWriter オブジェクトにサーバー コントロールの内容を出力し、トレースが有効である場合はコントロールに関するトレース情報を保存します。 (継承元 Control) |
RenderControl(HtmlTextWriter, ControlAdapter) |
指定した ControlAdapter オブジェクトを使用して、指定した HtmlTextWriter オブジェクトにサーバー コントロールの内容を出力します。 (継承元 Control) |
ResolveAdapter() |
指定したコントロールを表示するコントロール アダプターを取得します。 (継承元 Control) |
ResolveClientUrl(String) |
ブラウザーで使用できる URL を取得します。 (継承元 Control) |
ResolveUrl(String) |
要求側クライアントで使用できる URL に変換します。 (継承元 Control) |
SaveControlState() |
ページがサーバーにポスト バックされた時間以降に発生したすべてのサーバー コントロール状態の変化を保存します。 (継承元 Control) |
SaveViewState() |
ページがサーバーにポスト バックされた時間以降に発生した、サーバー コントロールのビューステートの変更を保存します。 (継承元 Control) |
SetDesignModeState(IDictionary) |
コントロールのデザイン時データを設定します。 (継承元 Control) |
SetRenderMethodDelegate(RenderMethod) |
サーバー コントロールとその内容を親コントロールに表示するイベント ハンドラー デリゲートを割り当てます。 (継承元 Control) |
SetTraceData(Object, Object) |
トレース データ キーとトレース データ値を使用して、レンダリング データのデザイン時トレースのトレース データを設定します。 (継承元 Control) |
SetTraceData(Object, Object, Object) |
トレースされたオブジェクト、トレース データ キー、およびトレース データ値を使用して、レンダリング データのデザイン時トレースのトレース データを設定します。 (継承元 Control) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
TrackViewState() |
サーバー コントロールにビューステートの変更を追跡させ、サーバー コントロールの StateBag オブジェクトに変更を格納できるようにします。 このオブジェクトは、ViewState プロパティによってアクセスできます。 (継承元 Control) |
イベント
DataBinding |
サーバー コントロールがデータ ソースに連結すると発生します。 (継承元 Control) |
Disposed |
サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。 (継承元 Control) |
Init |
サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。 (継承元 Control) |
Load |
サーバー コントロールが Page オブジェクトに読み込まれると発生します。 (継承元 Control) |
PreRender |
Control オブジェクトの読み込み後、表示を開始する前に発生します。 (継承元 Control) |
Unload |
サーバー コントロールがメモリからアンロードされると発生します。 (継承元 Control) |
明示的なインターフェイスの実装
IControlBuilderAccessor.ControlBuilder |
このメンバーの詳細については、「ControlBuilder」をご覧ください。 (継承元 Control) |
IControlDesignerAccessor.GetDesignModeState() |
このメンバーの詳細については、「GetDesignModeState()」をご覧ください。 (継承元 Control) |
IControlDesignerAccessor.SetDesignModeState(IDictionary) |
このメンバーの詳細については、「SetDesignModeState(IDictionary)」をご覧ください。 (継承元 Control) |
IControlDesignerAccessor.SetOwnerControl(Control) |
このメンバーの詳細については、「SetOwnerControl(Control)」をご覧ください。 (継承元 Control) |
IControlDesignerAccessor.UserData |
このメンバーの詳細については、「UserData」をご覧ください。 (継承元 Control) |
IDataBindingsAccessor.DataBindings |
このメンバーの詳細については、「DataBindings」をご覧ください。 (継承元 Control) |
IDataBindingsAccessor.HasDataBindings |
このメンバーの詳細については、「HasDataBindings」をご覧ください。 (継承元 Control) |
IExpressionsAccessor.Expressions |
このメンバーの詳細については、「Expressions」をご覧ください。 (継承元 Control) |
IExpressionsAccessor.HasExpressions |
このメンバーの詳細については、「HasExpressions」をご覧ください。 (継承元 Control) |
IParserAccessor.AddParsedSubObject(Object) |
このメンバーの詳細については、「AddParsedSubObject(Object)」をご覧ください。 (継承元 Control) |
拡張メソッド
FindDataSourceControl(Control) |
指定されたコントロールのデータ コントロールに関連付けられているデータ ソースを返します。 |
FindFieldTemplate(Control, String) |
指定されたコントロールの名前付けコンテナー内にある、指定された列のフィールド テンプレートを返します。 |
FindMetaTable(Control) |
格納しているデータ コントロールのメタテーブル オブジェクトを返します。 |
適用対象
こちらもご覧ください
.NET