ProxyWebPartManager Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje vývojářům způsob, jak deklarovat statická připojení na stránce obsahu, když WebPartManager je ovládací prvek deklarován na přidružené stránce předlohy stránky obsahu.
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
- Dědičnost
- Atributy
Příklady
Následující příklad kódu ukazuje, jak pomocí ProxyWebPartManager třídy deklarovat statická připojení na stránkách obsahu v aplikaci, která používá stránky předlohy. Příklad má pět částí:
Uživatelský ovládací prvek, který umožňuje změnit režim zobrazení webových částí na stránce.
Zdrojový kód rozhraní a dva WebPart ovládací prvky, které fungují jako zprostředkovatel a příjemce připojení.
Webová stránka předlohy, která je hostitelem uživatelského ovládacího prvku, stránek obsahu a WebPartManager ovládacího prvku aplikace.
Webová stránka obsahu, která je hostitelem ProxyWebPartManager ovládacího prvku, dvou vlastních WebPart ovládacích prvků a statického připojení pro propojení těchto dvou ovládacích prvků.
Vysvětlení, jak spustit ukázkovou stránku
První část tohoto příkladu kódu je uživatelský ovládací prvek, který umožňuje uživatelům měnit režimy zobrazení na webové stránce. Uložte následující zdrojový kód do souboru .ascx a dejte mu název souboru, který je přiřazen Src
atributu Register
direktivy pro tento uživatelský ovládací prvek, který se nachází v horní části stránky předlohy hostování. Podrobnosti o režimech zobrazení a popis zdrojového kódu v tomto ovládacím prvku najdete v tématu Návod: Změna režimů zobrazení na stránce webových částí.
<%@ 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>
Druhou částí příkladu kódu je zdrojový kód rozhraní a ovládacích prvků. Zdrojový soubor obsahuje jednoduché rozhraní s názvem IZipCode
. Existuje také WebPart třída s názvem ZipCodeWebPart
, která implementuje rozhraní a funguje jako ovládací prvek zprostředkovatele. Jeho ProvideIZipCode
metoda je metoda zpětného volání, která implementuje jediného člena rozhraní. Metoda jednoduše vrátí instanci rozhraní. Všimněte si, že metoda je v metadatech označena atributem ConnectionProvider
. Toto je mechanismus identifikace metody jako metody zpětného volání pro spojovací bod poskytovatele. Druhá WebPart třída má název WeatherWebPart
a funguje jako příjemce připojení. Tato třída má metodu s názvem GetZipCode
, která získá instanci IZipCode
rozhraní z ovládacího prvku zprostředkovatele. Všimněte si, že tato metoda je označena jako metoda spojovacího bodu příjemce s atributem ConnectionConsumer
v jeho metadatech.
Aby se příklad kódu spustil, musíte tento zdrojový kód zkompilovat. Můžete ho explicitně zkompilovat a umístit výsledné sestavení do složky Bin webu nebo globální mezipaměti sestavení . Případně můžete zdrojový kód umístit do složky App_Code webu, kde se bude dynamicky kompilovat za běhu. Tento příklad kódu používá dynamickou kompilaci. Návod, který ukazuje, jak kompilovat, najdete v tématu Návod: Vývoj a použití vlastního ovládacího prvku webového serveru.
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
Třetí částí příkladu kódu je stránka předlohy. Měli byste vzít následující zdrojový kód a uložit ho do souboru s názvy MasterPageCS.master nebo MasterPageVB.master (podle toho, který jazyk používáte). Všimněte si, že stránka předlohy obsahuje direktivu Register
pro registraci uživatelského ovládacího prvku a odkazuje na samotný uživatelský ovládací prvek v textu stránky. Stránka předlohy také deklaruje jeden <asp:webpartmanager>
prvek použitý pro tuto stránku a všechny související stránky obsahu. Nakonec má stránka předlohy prvek <asp: contentplaceholder>
, který deklaruje bod na stránce, kam je vložena stránka obsahu.
<%@ 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>
Čtvrtou částí příkladu kódu je stránka obsahu. Měli byste zkopírovat následující zdrojový kód a uložit ho do souboru s příponou .aspx. Všimněte si, že její Page
direktiva MasterFile
obsahuje atribut odkazující na stránku předlohy. Tato stránka obsahuje také direktivu Register
pro registraci souboru ve složce App_Code, která obsahuje dynamicky zkompilované vlastní WebPart ovládací prvky, které se účastní připojení.
<asp:content>
Uvnitř značek stránky je prvek s podřízeným <asp:proxywebpartmanager>
<staticconnections>
elementem, který má podřízený <asp:webpartconnection>
prvek pro deklaraci podrobností o připojení. V rámci <script>
značek na stránce metoda přidá kód, Button1_Click
který přistupuje k hlavnímu WebPartManager ovládacímu prvku na stránce předlohy a ovládacímu ProxyWebPartManager prvku na stránce obsahu, a zapíše na stránku některé z jejich podrobností.
<%@ 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>
Po načtení stránky v prohlížeči klikněte na tlačítko WebPartManager Informace a sledujte informace o ovládacím WebPartManager prvku na stránce předlohy a ovládací prvek ProxyWebPartManager na stránce obsahu. Všimněte si například, že oba mají stejný počet ve svých příslušných vlastnostech, které sledují statická připojení ( StaticConnections vlastnost). Všimněte si také, že ačkoli WebPartManager ovládací prvek má WebParts vlastnost, která sleduje počet ovládacích WebPart prvků, které spravuje, ProxyWebPartManager ovládací prvek nemá žádnou takovou vlastnost, protože jeho jediným účelem je obsahovat statická připojení.
Poznámky
Ovládací ProxyWebPartManager prvek existuje pro konkrétní scénář deklarování statických připojení na stránkách obsahu, pokud WebPartManager již byl ovládací prvek deklarován na stránce předlohy.
Webová stránka, která používá ovládací prvky webových částí, musí záměrně obsahovat jeden (a pouze jeden) WebPartManager ovládací prvek, který spravuje všechny ovládací prvky webových částí na stránce. Když aplikace webových částí používá stránky předlohy, je běžné umístit WebPartManager ovládací prvek na stránku předlohy, protože všechny stránky obsahu jsou sloučeny se stránkou předlohy za běhu a jeden WebPartManager ovládací prvek bude spravovat všechny webové části ovládací prvky ze všech stránek obsahu. Pokud ale vývojáři chtějí deklarovat statická připojení na stránkách obsahu takové aplikace, může se zdát, že se potýkají s omezením. Statické připojení webových částí lze deklarovat pouze přidáním elementu <asp:webpartconnection>
jako podřízeného <staticconnections>
prvku, který sám musí být podřízeným prvkem elementu <asp:webpartmanager>
. Vzhledem k tomu, že WebPartManager ovládací prvek byl již deklarován na stránce předlohy a jedná se o povolený WebPartManager ovládací prvek, nemůžou vývojáři na stránkách obsahu deklarovat další WebPartManager ovládací prvky pro přidání statických připojení.
Ovládací ProxyWebPartManager prvek v tomto scénáři převezme místo WebPartManager ovládacího prvku. Vývojáři deklarují <asp:proxywebpartmanager>
prvek místo elementu <asp:webpartmanager>
na svých stránkách obsahu a pak můžou deklarovat statická připojení jako podřízené elementy. Za běhu se připojení v ovládacím ProxyWebPartManager prvku jednoduše přidají do StaticConnections kolekce WebPartManager ovládacího prvku a zpracovávají se jako jakékoli jiné připojení.
Vzhledem k tomu, že ovládací ProxyWebPartManager prvek se používá pouze v tomto konkrétním vývojovém scénáři, má omezenější funkce než WebPartManager třída. ProxyWebPartManager Přestože ovládací prvek funguje jako proxy, který obsahuje statická připojení WebPartManager ovládacího prvku na stránkách obsahu, nedědí z WebPartManager ovládacího prvku. Dědí přímo z Control třídy a přepíše pouze několik základních členů. Vlastnosti EnableTheming, Visiblea SkinID jsou přepsány a přiřazeny hodnoty, které brání jejich použití. Ostatní zděděné vlastnosti jsou přepsány, aby se upravilo jejich chování v době návrhu, ale jinak mají stejné chování jako základní vlastnosti. Patří mezi Controls ně vlastnosti a ClientID . ProxyWebPartManager Nakonec má třída jednu nezděděnou vlastnost. Vlastnost StaticConnections vrátí vlastní kolekci statických připojení ( ProxyWebPartConnectionCollection objekt).
Pokud jde o metody, ProxyWebPartManager třída podobně přepíše pouze několik metod, většinou kvůli omezení jejich použití. Zděděná Focus metoda je nepoužitelná vyvoláním výjimky, pokud je volána. Metoda CreateControlCollection vždy vrací prázdnou kolekci ovládacích prvků, což má za následek, že brání tomu, aby mohla obsahovat kolekci ovládacích prvků. OnInit Nakonec metoda zavolá základní metodu a pak přiřadí kolekci připojení odkazovaných StaticConnections vlastností vlastnosti WebPartManager.StaticConnectionsWebPartManager ovládacího prvku. To má za následek, že všechna statická připojení deklarovaná na všech stránkách obsahu jsou součástí kolekce připojení, kterou WebPartManager udržuje ovládací prvek na stránce předlohy.
Konstruktory
ProxyWebPartManager() |
Inicializuje novou instanci ProxyWebPartManager třídy. |
Vlastnosti
Adapter |
Získá adaptér specifický pro prohlížeč pro ovládací prvek. (Zděděno od Control) |
AppRelativeTemplateSourceDirectory |
Získá nebo nastaví aplikace relativní virtuální adresář nebo UserControl objektuPage, který obsahuje tento ovládací prvek. (Zděděno od Control) |
BindingContainer |
Získá ovládací prvek, který obsahuje datové vazby tohoto ovládacího prvku. (Zděděno od Control) |
ChildControlsCreated |
Získá hodnotu, která označuje, zda byly vytvořeny podřízené ovládací prvky ovládacího prvku serveru. (Zděděno od Control) |
ClientID |
Získá ID ovládacího prvku pro kód HTML, který je generován ASP.NET. |
ClientIDMode |
Získá nebo nastaví algoritmus, který se používá k vygenerování hodnoty ClientID vlastnosti. (Zděděno od Control) |
ClientIDSeparator |
Získá hodnotu znaku představující znak oddělovače použitý ve ClientID vlastnosti. (Zděděno od Control) |
Context |
HttpContext Získá objekt přidružený k ovládacímu prvku serveru pro aktuální webový požadavek. (Zděděno od Control) |
Controls |
ControlCollection Získá objekt, který představuje podřízené ovládací prvky pro zadaný server ovládací prvek v hierarchii uživatelského rozhraní. |
DataItemContainer |
Získá odkaz na názvový kontejner, pokud názvový kontejner implementuje IDataItemContainer. (Zděděno od Control) |
DataKeysContainer |
Získá odkaz na názvový kontejner, pokud názvový kontejner implementuje IDataKeysControl. (Zděděno od Control) |
DesignMode |
Získá hodnotu označující, zda je ovládací prvek použit na návrhové ploše. (Zděděno od Control) |
EnableTheming |
Přepíše základní vlastnost, aby se zabránilo použití motivů. |
EnableViewState |
Získá nebo nastaví hodnotu určující, zda serverový ovládací prvek zachová svůj stav zobrazení a stav zobrazení všech podřízených ovládacích prvků, které obsahuje, pro žádajícího klienta. (Zděděno od Control) |
Events |
Získá seznam delegátů obslužné rutiny události pro ovládací prvek. Tato vlastnost je jen ke čtení. (Zděděno od Control) |
HasChildViewState |
Získá hodnotu označující, zda podřízené ovládací prvky aktuálního serveru mají uložené nastavení stavu zobrazení. (Zděděno od Control) |
ID |
Získá nebo nastaví programový identifikátor přiřazený k ovládacímu prvku serveru. (Zděděno od Control) |
IdSeparator |
Získá znak použitý k oddělení identifikátorů ovládacích prvků. (Zděděno od Control) |
IsChildControlStateCleared |
Získá hodnotu označující, zda ovládací prvky obsažené v tomto ovládacím prvku mají stav řízení. (Zděděno od Control) |
IsTrackingViewState |
Získá hodnotu, která označuje, zda serverový ovládací prvek ukládá změny do stavu zobrazení. (Zděděno od Control) |
IsViewStateEnabled |
Získá hodnotu označující, zda je pro tento ovládací prvek povolen stav zobrazení. (Zděděno od Control) |
LoadViewStateByID |
Získá hodnotu označující, zda se ovládací prvek účastní načítání stavu ID zobrazení místo indexu. (Zděděno od Control) |
NamingContainer |
Získá odkaz na názvový kontejner ovládacího prvku serveru, který vytvoří jedinečný obor názvů pro rozdíl mezi serverovými ovládacími prvky se stejnou ID hodnotou vlastnosti. (Zděděno od Control) |
Page |
Získá odkaz na Page instanci, která obsahuje serverový ovládací prvek. (Zděděno od Control) |
Parent |
Získá odkaz na serverový ovládací prvek nadřazený ovládací prvek v hierarchii ovládacích prvků stránky. (Zděděno od Control) |
RenderingCompatibility |
Získá hodnotu, která určuje ASP.NET verze, která vykreslí HTML bude kompatibilní s. (Zděděno od Control) |
Site |
Získá informace o kontejneru, který hostuje aktuální ovládací prvek při vykreslení na návrhové ploše. (Zděděno od Control) |
SkinID |
Přepíše základní vlastnost, aby se zabránilo přiřazení hodnoty. |
StaticConnections |
Získá kolekci statických připojení deklarovaných v elementu |
TemplateControl |
Získá nebo nastaví odkaz na šablonu, která obsahuje tento ovládací prvek. (Zděděno od Control) |
TemplateSourceDirectory |
Získá virtuální adresář Page nebo UserControl , který obsahuje aktuální server ovládací prvek. (Zděděno od Control) |
UniqueID |
Získá jedinečný hierarchicky kvalifikovaný identifikátor serverového ovládacího prvku. (Zděděno od Control) |
ValidateRequestMode |
Získá nebo nastaví hodnotu, která označuje, zda ovládací prvek kontroluje vstup klienta z prohlížeče pro potenciálně nebezpečné hodnoty. (Zděděno od Control) |
ViewState |
Získá slovník informací o stavu, který umožňuje uložit a obnovit stav zobrazení serverového ovládacího prvku napříč několika požadavky na stejnou stránku. (Zděděno od Control) |
ViewStateIgnoresCase |
Získá hodnotu, která označuje, zda StateBag objekt nerozlišuje velká a malá písmena. (Zděděno od Control) |
ViewStateMode |
Získá nebo nastaví režim zobrazení stavu tohoto ovládacího prvku. (Zděděno od Control) |
Visible |
Přepíše základní vlastnost, aby se zabránilo přiřazení hodnoty. |
Metody
AddedControl(Control, Int32) |
Volá se po přidání podřízeného ovládacího prvku do Controls kolekce objektu Control . (Zděděno od Control) |
AddParsedSubObject(Object) |
Upozorní ovládací prvek serveru, že byl analyzován prvek XML nebo HTML, a přidá element do objektu ovládacího prvku ControlCollection serveru. (Zděděno od Control) |
ApplyStyleSheetSkin(Page) |
Použije vlastnosti stylu definované v šabloně stylů stránky na ovládací prvek. (Zděděno od Control) |
BeginRenderTracing(TextWriter, Object) |
Zahájí trasování vykreslování dat v době návrhu. (Zděděno od Control) |
BuildProfileTree(String, Boolean) |
Shromáždí informace o ovládacím prvku serveru a doručí je do Trace vlastnosti, která se má zobrazit, když je pro stránku povolené trasování. (Zděděno od Control) |
ClearCachedClientID() |
Nastaví hodnotu v ClientID mezipaměti na |
ClearChildControlState() |
Odstraní informace o stavu řízení pro podřízené ovládací prvky serveru. (Zděděno od Control) |
ClearChildState() |
Odstraní informace o stavu zobrazení a stavu řízení pro všechny podřízené ovládací prvky serveru. (Zděděno od Control) |
ClearChildViewState() |
Odstraní informace o stavu zobrazení všech podřízených ovládacích prvků serveru. (Zděděno od Control) |
ClearEffectiveClientIDMode() |
ClientIDMode Nastaví vlastnost aktuální instance ovládacího prvku a všech podřízených ovládacích prvků na Inherit. (Zděděno od Control) |
CreateChildControls() |
Volá se rozhraním ASP.NET stránky, aby upozornily ovládací prvky serveru, které používají implementaci založenou na složení k vytvoření všech podřízených ovládacích prvků, které obsahují při přípravě na publikování zpět nebo vykreslování. (Zděděno od Control) |
CreateControlCollection() |
Přepíše základní vlastnost, aby ovládací prvek nemohl ProxyWebPartManager obsahovat ovládací prvky. |
DataBind() |
Vytvoří vazbu zdroje dat na vyvoláný serverový ovládací prvek a všechny jeho podřízené ovládací prvky. (Zděděno od Control) |
DataBind(Boolean) |
Vytvoří vazbu zdroje dat na vyvoláný serverový ovládací prvek a všechny jeho podřízené ovládací prvky s možností vyvolat DataBinding událost. (Zděděno od Control) |
DataBindChildren() |
Sváže zdroj dat s podřízenými ovládacími prvky serverového ovládacího prvku. (Zděděno od Control) |
Dispose() |
Umožňuje ovládacímu prvku serveru provést konečné vyčištění před uvolněním z paměti. (Zděděno od Control) |
EndRenderTracing(TextWriter, Object) |
Ukončí trasování vykreslovaných dat v době návrhu. (Zděděno od Control) |
EnsureChildControls() |
Určuje, zda serverový ovládací prvek obsahuje podřízené ovládací prvky. Pokud ne, vytvoří podřízené ovládací prvky. (Zděděno od Control) |
EnsureID() |
Vytvoří identifikátor ovládacích prvků, které nemají přiřazený identifikátor. (Zděděno od Control) |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
FindControl(String) |
Vyhledá v aktuálním kontejneru pojmenování serverový ovládací prvek pomocí zadaného |
FindControl(String, Int32) |
Vyhledá v aktuálním kontejneru pojmenování serverový ovládací prvek se zadaným |
Focus() |
Přepíše základní metodu, aby se zabránilo zavolání metody. |
GetDesignModeState() |
Získá data v době návrhu pro ovládací prvek. (Zděděno od Control) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetRouteUrl(Object) |
Získá adresu URL, která odpovídá sadě parametrů trasy. (Zděděno od Control) |
GetRouteUrl(RouteValueDictionary) |
Získá adresu URL, která odpovídá sadě parametrů trasy. (Zděděno od Control) |
GetRouteUrl(String, Object) |
Získá adresu URL, která odpovídá sadě parametrů trasy a název trasy. (Zděděno od Control) |
GetRouteUrl(String, RouteValueDictionary) |
Získá adresu URL, která odpovídá sadě parametrů trasy a název trasy. (Zděděno od Control) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
GetUniqueIDRelativeTo(Control) |
Vrátí předponu vlastnosti UniqueID zadaného ovládacího prvku. (Zděděno od Control) |
HasControls() |
Určuje, jestli serverový ovládací prvek obsahuje nějaké podřízené ovládací prvky. (Zděděno od Control) |
HasEvents() |
Vrátí hodnotu označující, zda jsou události registrovány pro ovládací prvek nebo jakékoli podřízené ovládací prvky. (Zděděno od Control) |
IsLiteralContent() |
Určuje, jestli serverový ovládací prvek obsahuje pouze obsah literálu. (Zděděno od Control) |
LoadControlState(Object) |
Obnoví informace o stavu řízení z předchozího požadavku stránky, který byl uložen metodou SaveControlState() . (Zděděno od Control) |
LoadViewState(Object) |
Obnoví informace o stavu zobrazení z předchozí žádosti o stránku, která byla uložena metodou SaveViewState() . (Zděděno od Control) |
MapPathSecure(String) |
Načte fyzickou cestu, na kterou se mapuje virtuální cesta, absolutní nebo relativní. (Zděděno od Control) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
OnBubbleEvent(Object, EventArgs) |
Určuje, zda je událost serverového ovládacího prvku předána hierarchii ovládacích prvků serveru uživatelského rozhraní stránky. (Zděděno od Control) |
OnDataBinding(EventArgs) |
DataBinding Vyvolá událost. (Zděděno od Control) |
OnInit(EventArgs) |
Init Vyvolá událost a inicializuje ovládací prvek. |
OnLoad(EventArgs) |
Load Vyvolá událost. (Zděděno od Control) |
OnPreRender(EventArgs) |
PreRender Vyvolá událost. (Zděděno od Control) |
OnUnload(EventArgs) |
Unload Vyvolá událost. (Zděděno od Control) |
OpenFile(String) |
Stream Získá zvyk ke čtení souboru. (Zděděno od Control) |
RaiseBubbleEvent(Object, EventArgs) |
Přiřadí všechny zdroje události a její informace nadřazené ovládacímu prvku. (Zděděno od Control) |
RemovedControl(Control) |
Volá se po odebrání podřízeného ovládacího prvku z Controls kolekce objektu Control . (Zděděno od Control) |
Render(HtmlTextWriter) |
Odesílá obsah ovládacích prvků serveru do zadaného HtmlTextWriter objektu, který zapisuje obsah, který se má vykreslit na klientovi. (Zděděno od Control) |
RenderChildren(HtmlTextWriter) |
Vypíše obsah podřízených položek serverového ovládacího prvku do zadaného HtmlTextWriter objektu, který zapíše obsah, který se má vykreslit v klientovi. (Zděděno od Control) |
RenderControl(HtmlTextWriter) |
Vypíše obsah ovládacích prvků serveru do zadaného HtmlTextWriter objektu a uloží informace o trasování ovládacího prvku, pokud je trasování povolené. (Zděděno od Control) |
RenderControl(HtmlTextWriter, ControlAdapter) |
Vypíše obsah ovládacích prvků serveru do zadaného HtmlTextWriter objektu pomocí zadaného ControlAdapter objektu. (Zděděno od Control) |
ResolveAdapter() |
Získá řídicí adaptér zodpovědný za vykreslení zadaného ovládacího prvku. (Zděděno od Control) |
ResolveClientUrl(String) |
Získá adresu URL, kterou lze použít v prohlížeči. (Zděděno od Control) |
ResolveUrl(String) |
Převede adresu URL na adresu URL, která je použitelná v žádajícím klientovi. (Zděděno od Control) |
SaveControlState() |
Uloží všechny změny stavu ovládacího prvku serveru, ke kterým došlo od okamžiku, kdy byla stránka odeslána zpět na server. (Zděděno od Control) |
SaveViewState() |
Uloží všechny změny stavu zobrazení ovládacích prvků serveru, ke kterým došlo od okamžiku, kdy byla stránka odeslána zpět na server. (Zděděno od Control) |
SetDesignModeState(IDictionary) |
Nastaví data v době návrhu ovládacího prvku. (Zděděno od Control) |
SetRenderMethodDelegate(RenderMethod) |
Přiřadí delegáta obslužné rutiny události, který vykresluje serverový ovládací prvek a jeho obsah do nadřazeného ovládacího prvku. (Zděděno od Control) |
SetTraceData(Object, Object) |
Nastaví trasovací data pro trasování vykreslovaných dat v době návrhu pomocí klíče dat trasování a hodnoty dat trasování. (Zděděno od Control) |
SetTraceData(Object, Object, Object) |
Nastaví trasovací data pro trasování vykreslování dat v době návrhu pomocí trasovaného objektu, klíče dat trasování a hodnoty dat trasování. (Zděděno od Control) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
TrackViewState() |
Způsobí sledování změn stavu zobrazení serverového ovládacího prvku, aby mohly být uloženy v objektu ovládacího prvku StateBag serveru. Tento objekt je přístupný prostřednictvím ViewState vlastnosti. (Zděděno od Control) |
Událost
DataBinding |
Nastane, když ovládací prvek serveru vytvoří vazbu na zdroj dat. (Zděděno od Control) |
Disposed |
Nastane při uvolnění serverového ovládacího prvku z paměti, což je poslední fáze životního cyklu řízení serveru, když je požadována stránka ASP.NET. (Zděděno od Control) |
Init |
Nastane při inicializaci ovládacího prvku serveru, což je první krok v jeho životním cyklu. (Zděděno od Control) |
Load |
Nastane při načtení serverového ovládacího prvku do objektu Page . (Zděděno od Control) |
PreRender |
Nastane po načtení objektu Control , ale před vykreslením. (Zděděno od Control) |
Unload |
Nastane při uvolnění serverového ovládacího prvku z paměti. (Zděděno od Control) |
Explicitní implementace rozhraní
Metody rozšíření
FindDataSourceControl(Control) |
Vrátí zdroj dat přidružený k ovládacímu prvku dat pro zadaný ovládací prvek. |
FindFieldTemplate(Control, String) |
Vrátí šablonu pole pro zadaný sloupec v kontejneru názvů zadaného ovládacího prvku. |
FindMetaTable(Control) |
Vrátí objekt metatable pro ovládací prvek obsahující data. |