ProxyWebPartManager Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İçerik sayfasının ilişkili ana sayfasında bir denetim bildirildiğinde geliştiricilerin içerik sayfasında statik bağlantılar bildirmesi için bir WebPartManager yol sağlar.
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
- Devralma
- Öznitelikler
Örnekler
Aşağıdaki kod örneği, ana sayfaları kullanan bir uygulamadaki ProxyWebPartManager içerik sayfalarında statik bağlantılar bildirmek için sınıfının nasıl kullanılacağını gösterir. Örnekte beş bölüm vardır:
Sayfadaki Web Bölümleri görüntüleme modunu değiştirmenize olanak tanıyan bir kullanıcı denetimi.
Bir arabirim ve bir bağlantı için sağlayıcı ve tüketici olarak davranan iki WebPart denetimin kaynak kodu.
Kullanıcı denetimini, içerik sayfalarını ve WebPartManager uygulamanın denetimini barındıran bir ana Web sayfası.
Bir denetimi, iki özel WebPart denetimi ve iki denetimi bağlamak için statik bağlantıyı barındıran ProxyWebPartManager içerik Web sayfası.
Örnek sayfayı çalıştırmanın açıklaması.
Bu kod örneğinin ilk bölümü, kullanıcıların Web sayfasındaki görüntü modlarını değiştirmesine olanak tanıyan kullanıcı denetimidir. Aşağıdaki kaynak kodu bir .ascx dosyasına kaydedin ve bu dosyaya barındırma ana sayfasının üst kısmına yakın olan bu kullanıcı denetimi yönergesinin Register
özniteliğine atanan Src
dosya adını verin. Bu denetimdeki görüntü modları ve kaynak kodun açıklaması hakkında ayrıntılı bilgi için bkz . İzlenecek Yol: Web Bölümleri Sayfasında Görüntüleme Modlarını Değiştirme.
<%@ 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>
Kod örneğinin ikinci bölümü, arabirim ve denetimlerin kaynak kodudur. Kaynak dosya adlı IZipCode
basit bir arabirim içerir. Ayrıca arabirimini uygulayan ve sağlayıcı denetimi olarak davranan adlı ZipCodeWebPart
bir WebPart sınıf da vardır. Yöntemi ProvideIZipCode
, arabirimin tek üyesini uygulayan geri çağırma yöntemidir. yöntemi yalnızca arabiriminin bir örneğini döndürür. yönteminin meta verilerinde bir ConnectionProvider
öznitelikle işaretlendiğini unutmayın. Bu, sağlayıcının bağlantı noktası için geri çağırma yöntemi olarak yöntemini tanımlama mekanizmasıdır. Diğer WebPart sınıf olarak adlandırılır WeatherWebPart
ve bağlantı için tüketici işlevi görür. Bu sınıf, sağlayıcı denetiminden arabirimin bir örneğini IZipCode
alan adlı GetZipCode
bir yönteme sahiptir. Bu yöntemin, meta verilerinde bir ConnectionConsumer
özniteliği olan tüketicinin bağlantı noktası yöntemi olarak işaretlendiğini unutmayın.
Kod örneğinin çalışması için bu kaynak kodunu derlemeniz gerekir. Bunu açıkça derleyebilir ve sonuçta elde edilen derlemeyi Web sitenizin Bin klasörüne veya genel derleme önbelleğine yerleştirebilirsiniz. Alternatif olarak, kaynak kodu sitenizin App_Code klasörüne koyabilirsiniz; burada çalışma zamanında dinamik olarak derlenir. Bu kod örneği dinamik derleme kullanır. Derlemeyi gösteren bir izlenecek yol için bkz . İzlenecek Yol: Özel Web Sunucusu Denetimi Geliştirme ve Kullanma.
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
Kod örneğinin üçüncü bölümü ana sayfadır. Aşağıdaki kaynak kodunu alıp bir dosyaya kaydedip MasterPageCS.master veya MasterPageVB.master olarak adlandırmalısınız (kullandığınız dile bağlı olarak). Ana sayfanın, kullanıcı denetimini kaydetmek için bir Register
yönerge içerdiğini ve sayfanın gövdesinde kullanıcı denetiminin kendisine başvurduğunu unutmayın. Ana sayfa ayrıca bu sayfa ve tüm ilgili içerik sayfaları için kullanılan tek <asp:webpartmanager>
öğeyi bildirir. Son olarak, ana sayfanın içerik sayfasının eklendiği sayfada noktayı bildiren bir <asp: contentplaceholder>
öğesi vardır.
<%@ 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>
Kod örneğinin dördüncü bölümü içerik sayfasıdır. Aşağıdaki kaynak kodu kopyalayıp .aspx uzantısına sahip bir dosyaya kaydetmeniz gerekir. yönergesinin Page
ana sayfaya başvurmak için bir MasterFile
öznitelik içerdiğine dikkat edin. Ayrıca bu sayfa, dosyayı bağlantıya katılan dinamik olarak derlenmiş özel WebPart denetimleri içeren App_Code klasörüne kaydetme yönergesine sahiptirRegister
. Sayfanın etiketleri içinde <asp:content>
, alt öğesi olan bir <asp:proxywebpartmanager>
<staticconnections>
öğesi vardır ve bu öğe de bağlantının ayrıntılarını bildirmek için bir alt <asp:webpartconnection>
öğeye sahiptir.
<script>
Yöntemi, sayfadaki etiketler içinde ana Button1_Click
sayfadaki ana WebPartManager denetime ve ProxyWebPartManager içerik sayfasındaki denetime erişen ve bazı ayrıntılarını sayfaya yazan bazı kodlar ekler.
<%@ 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>
Sayfayı bir tarayıcıda yükledikten sonra WebPartManager Bilgileri düğmesine tıklayın ve ana sayfadaki denetimle ilgili WebPartManager bilgileri ve ProxyWebPartManager içerik sayfasındaki denetimi gözlemleyin. Örneğin, her ikisinin de statik bağlantıları (özelliği) izleyen ilgili özelliklerinde aynı sayıya StaticConnections sahip olduğunu unutmayın. Ayrıca, denetimin WebPartManager yönettiği denetimlerin sayısını WebPart izleyen bir özelliği olsa da, ProxyWebPartManager tek amacı statik bağlantılar içermek olduğundan denetimin böyle bir WebParts özelliği yoktur.
Açıklamalar
Denetim, ProxyWebPartManager bir denetim ana sayfada önceden bildirilmiş olduğunda WebPartManager içerik sayfalarında statik bağlantılar bildirmeye yönelik belirli bir senaryo için mevcuttur.
Tasarım gereği, Web Bölümleri denetimlerini kullanan bir Web sayfası, sayfadaki tüm Web Bölümleri denetimlerini yöneten bir (ve yalnızca bir) WebPartManager denetim içermelidir. Web Bölümleri uygulaması ana sayfaları kullandığında, denetimi ana sayfaya yerleştirmek WebPartManager yaygın bir durumdur çünkü tüm içerik sayfaları çalışma zamanında ana sayfayla birleştirilir ve tek WebPartManager denetim tüm içerik sayfalarından tüm Web Bölümleri denetimlerini yönetir. Ancak, geliştiriciler böyle bir uygulamanın içerik sayfalarında statik bağlantılar bildirmek istediklerinde, bir sınırlamayla karşılaşmış gibi görünebilirler. Statik Web Bölümleri bağlantısı yalnızca öğenin <asp:webpartconnection>
alt <staticconnections>
öğesi olarak eklenerek bildirilebilir ve bu da öğenin alt <asp:webpartmanager>
öğesi olmalıdır.
WebPartManager Ancak denetim ana sayfada zaten bildirildiğinden ve izin verilen WebPartManager denetim olduğundan, geliştiriciler statik bağlantılar eklemek için içerik sayfalarında ek WebPartManager denetimler bildiremez.
Denetim ProxyWebPartManager , bu senaryoda denetimin WebPartManager yerini alır. Geliştiriciler içerik sayfalarında bir <asp:proxywebpartmanager>
öğe yerine bir <asp:webpartmanager>
öğe bildirir ve ardından statik bağlantıları alt öğeler olarak bildirebilir. Çalışma zamanında, denetimdeki ProxyWebPartManager bağlantılar yalnızca denetimin StaticConnectionsWebPartManager koleksiyonuna eklenir ve diğer bağlantılar gibi değerlendirilir.
ProxyWebPartManager Denetim yalnızca bu geliştirme senaryosunda kullanıldığından, sınıftan WebPartManager daha sınırlı işlevselliğe sahiptir. Aslında, denetim içerik sayfalarındaki denetim için WebPartManager statik bağlantılar içeren bir proxy işlevi görse ProxyWebPartManager de, denetimden WebPartManager devralmaz. Doğrudan sınıfından devralır Control ve yalnızca birkaç temel üyeyi geçersiz kılar. EnableTheming, Visibleve SkinID özellikleri geçersiz kılınmış ve bunların kullanılmasını engelleyen değerler atanmıştır. Diğer devralınan özellikler, tasarım zamanı davranışlarını ayarlamak için geçersiz kılınır, ancak aksi takdirde temel özelliklerle aynı davranışa sahiptir. Bunlar ve ClientID özelliklerini içerirControls. Son olarak, sınıfın ProxyWebPartManager devralınmayan bir özelliği vardır. StaticConnections özelliği kendi statik bağlantı koleksiyonunu (bir ProxyWebPartConnectionCollection nesne) döndürür.
Yöntemlere gelince, ProxyWebPartManager sınıfı benzer şekilde yalnızca birkaç yöntemi geçersiz kılar ve çoğunlukla kullanımlarını kısıtlar. Devralınan Focus yöntem çağrılırsa bir özel durum oluşturarak kullanılamaz duruma gelir. CreateControlCollection yöntemi her zaman boş bir denetim koleksiyonu döndürür ve bu da bir denetim koleksiyonu içerebilmesini engelleme etkisine sahiptir. Son olarak yöntemi OnInit base yöntemini çağırır ve ardından özelliği tarafından StaticConnections başvuruda bulunan bağlantı koleksiyonunu denetimin WebPartManager.StaticConnectionsWebPartManager özelliğine atar. Bu, tüm içerik sayfalarında bildirilen tüm statik bağlantıların sıralanmasının ve ana sayfadaki denetim tarafından tutulan bağlantı koleksiyonunun WebPartManager bir parçası olmalarının etkisine sahiptir.
Oluşturucular
ProxyWebPartManager() |
ProxyWebPartManager sınıfının yeni bir örneğini başlatır. |
Özellikler
Adapter |
Denetim için tarayıcıya özgü bağdaştırıcıyı alır. (Devralındığı yer: Control) |
AppRelativeTemplateSourceDirectory |
Bu denetimi içeren veya nesnesinin Page uygulama göreli sanal dizinini alır veya UserControl ayarlar. (Devralındığı yer: Control) |
BindingContainer |
Bu denetimin veri bağlamasını içeren denetimi alır. (Devralındığı yer: Control) |
ChildControlsCreated |
Sunucu denetiminin alt denetimlerinin oluşturulup oluşturulmadığını gösteren bir değer alır. (Devralındığı yer: Control) |
ClientID |
ASP.NET tarafından oluşturulan HTML işaretlemesinin denetim kimliğini alır. |
ClientIDMode |
özelliğinin değerini oluşturmak için kullanılan algoritmayı ClientID alır veya ayarlar. (Devralındığı yer: Control) |
ClientIDSeparator |
özelliğinde ClientID kullanılan ayırıcı karakteri temsil eden bir karakter değeri alır. (Devralındığı yer: Control) |
Context |
HttpContext Geçerli Web isteği için sunucu denetimiyle ilişkili nesneyi alır. (Devralındığı yer: Control) |
Controls |
ControlCollection Kullanıcı arabirimi hiyerarşisindeki belirtilen sunucu denetimi için alt denetimleri temsil eden bir nesnesi alır. |
DataItemContainer |
Adlandırma kapsayıcısı uygularsa IDataItemContaineradlandırma kapsayıcısına bir başvuru alır. (Devralındığı yer: Control) |
DataKeysContainer |
Adlandırma kapsayıcısı uygularsa IDataKeysControladlandırma kapsayıcısına bir başvuru alır. (Devralındığı yer: Control) |
DesignMode |
Bir denetimin tasarım yüzeyinde kullanılıp kullanılmadığını belirten bir değer alır. (Devralındığı yer: Control) |
EnableTheming |
Temaların kullanılmasını önlemek için temel özelliği geçersiz kılar. |
EnableViewState |
Sunucu denetiminin görünüm durumunu ve içerdiği alt denetimlerin görünüm durumunu istekte bulunan istemciye kalıcı hale getirip taşımadığını belirten bir değer alır veya ayarlar. (Devralındığı yer: Control) |
Events |
Denetim için olay işleyicisi temsilcilerinin listesini alır. Bu özellik salt okunur durumdadır. (Devralındığı yer: Control) |
HasChildViewState |
Geçerli sunucu denetiminin alt denetimlerinin kaydedilmiş görünüm durumu ayarlarına sahip olup olmadığını belirten bir değer alır. (Devralındığı yer: Control) |
ID |
Sunucu denetimine atanan programlı tanımlayıcıyı alır veya ayarlar. (Devralındığı yer: Control) |
IdSeparator |
Denetim tanımlayıcılarını ayırmak için kullanılan karakteri alır. (Devralındığı yer: Control) |
IsChildControlStateCleared |
Bu denetim içindeki denetimlerin denetim durumuna sahip olup olmadığını belirten bir değer alır. (Devralındığı yer: Control) |
IsTrackingViewState |
Sunucu denetiminin değişiklikleri görünüm durumuna kaydedip kaydetmediğini belirten bir değer alır. (Devralındığı yer: Control) |
IsViewStateEnabled |
Bu denetim için görünüm durumunun etkinleştirilip etkinleştirilmediğini belirten bir değer alır. (Devralındığı yer: Control) |
LoadViewStateByID |
Denetimin dizin yerine görünüm durumunu ID yüklemeye katılıp katılmadığını belirten bir değer alır. (Devralındığı yer: Control) |
NamingContainer |
Aynı özellik değerine sahip sunucu denetimleri arasında ayrım yapmak için benzersiz bir ad alanı oluşturan sunucu denetiminin adlandırma kapsayıcısına ID başvuru alır. (Devralındığı yer: Control) |
Page |
Sunucu denetimini içeren örneğe başvuru Page alır. (Devralındığı yer: Control) |
Parent |
Sayfa denetimi hiyerarşisindeki sunucu denetiminin üst denetimine başvuru alır. (Devralındığı yer: Control) |
RenderingCompatibility |
HTML'nin uyumlu olacağı ASP.NET sürümünü belirten bir değer alır. (Devralındığı yer: Control) |
Site |
Tasarım yüzeyinde işlendiğinde geçerli denetimi barındıran kapsayıcı hakkında bilgi alır. (Devralındığı yer: Control) |
SkinID |
Bir değerin atanmasını önlemek için temel özelliği geçersiz kılar. |
StaticConnections |
İçerik sayfasındaki öğesi içinde |
TemplateControl |
Bu denetimi içeren şablona başvuru alır veya ayarlar. (Devralındığı yer: Control) |
TemplateSourceDirectory |
Geçerli sunucu denetimini içeren veya UserControl sanal dizinini Page alır. (Devralındığı yer: Control) |
UniqueID |
Sunucu denetimi için benzersiz, hiyerarşik olarak nitelenmiş tanımlayıcıyı alır. (Devralındığı yer: Control) |
ValidateRequestMode |
Denetimin tarayıcıdan istemci girişini tehlikeli olabilecek değerler için denetlediğini belirten bir değer alır veya ayarlar. (Devralındığı yer: Control) |
ViewState |
Aynı sayfa için birden çok istekte bir sunucu denetiminin görünüm durumunu kaydetmenize ve geri yüklemenize olanak tanıyan durum bilgileri sözlüğü alır. (Devralındığı yer: Control) |
ViewStateIgnoresCase |
Nesnenin StateBag büyük/küçük harfe duyarlı olup olmadığını gösteren bir değer alır. (Devralındığı yer: Control) |
ViewStateMode |
Bu denetimin görünüm durumu modunu alır veya ayarlar. (Devralındığı yer: Control) |
Visible |
Bir değerin atanmasını önlemek için temel özelliği geçersiz kılar. |
Yöntemler
AddedControl(Control, Int32) |
Nesne koleksiyonuna Controls bir alt denetim eklendikten sonra çağrılır Control . (Devralındığı yer: Control) |
AddParsedSubObject(Object) |
Sunucu denetimine XML veya HTML gibi bir öğenin ayrıştırıldığını bildirir ve öğeyi sunucu denetiminin ControlCollection nesnesine ekler. (Devralındığı yer: Control) |
ApplyStyleSheetSkin(Page) |
Sayfa stili sayfasında tanımlanan stil özelliklerini denetime uygular. (Devralındığı yer: Control) |
BeginRenderTracing(TextWriter, Object) |
İşleme verilerinin tasarım zamanı izlemesini başlatır. (Devralındığı yer: Control) |
BuildProfileTree(String, Boolean) |
Sunucu denetimi hakkında bilgi toplar ve sayfa için izleme etkinleştirildiğinde görüntülenecek özelliğe teslim Trace eder. (Devralındığı yer: Control) |
ClearCachedClientID() |
Önbelleğe alınan ClientID değeri olarak |
ClearChildControlState() |
Sunucu denetiminin alt denetimleri için denetim durumu bilgilerini siler. (Devralındığı yer: Control) |
ClearChildState() |
Tüm sunucu denetiminin alt denetimleri için görünüm durumu ve denetim durumu bilgilerini siler. (Devralındığı yer: Control) |
ClearChildViewState() |
Tüm sunucu denetiminin alt denetimleri için görünüm durumu bilgilerini siler. (Devralındığı yer: Control) |
ClearEffectiveClientIDMode() |
ClientIDMode Geçerli denetim örneğinin ve alt denetimlerin özelliğini olarak Inheritayarlar. (Devralındığı yer: Control) |
CreateChildControls() |
ASP.NET sayfa çerçevesi tarafından, geri gönderme veya işleme hazırlığında içerdikleri alt denetimleri oluşturmak üzere oluşturma tabanlı uygulama kullanan sunucu denetimlerini bilgilendirmek için çağrılır. (Devralındığı yer: Control) |
CreateControlCollection() |
Denetimin denetim içermesini önlemek ProxyWebPartManager için temel özelliği geçersiz kılar. |
DataBind() |
Bir veri kaynağını çağrılan sunucu denetimine ve tüm alt denetimlerine bağlar. (Devralındığı yer: Control) |
DataBind(Boolean) |
Bir veri kaynağını çağrılan sunucu denetimine ve tüm alt denetimlerine olayı tetikle DataBinding seçeneğiyle bağlar. (Devralındığı yer: Control) |
DataBindChildren() |
Bir veri kaynağını sunucu denetiminin alt denetimlerine bağlar. (Devralındığı yer: Control) |
Dispose() |
Sunucu denetiminin bellekten çıkmadan önce son temizleme işlemini gerçekleştirmesini sağlar. (Devralındığı yer: Control) |
EndRenderTracing(TextWriter, Object) |
İşleme verilerinin tasarım zamanı izlemesini sonlandırır. (Devralındığı yer: Control) |
EnsureChildControls() |
Sunucu denetiminin alt denetimler içerip içermediğini belirler. Aksi takdirde alt denetimler oluşturur. (Devralındığı yer: Control) |
EnsureID() |
Atanmış tanımlayıcısı olmayan denetimler için bir tanımlayıcı oluşturur. (Devralındığı yer: Control) |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
FindControl(String) |
Belirtilen |
FindControl(String, Int32) |
Geçerli adlandırma kapsayıcısında belirtilen ve parametresinde |
Focus() |
Yöntemin çağrılmasını önlemek için temel yöntemi geçersiz kılar. |
GetDesignModeState() |
Denetim için tasarım zamanı verilerini alır. (Devralındığı yer: Control) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetRouteUrl(Object) |
Bir yol parametreleri kümesine karşılık gelen URL'yi alır. (Devralındığı yer: Control) |
GetRouteUrl(RouteValueDictionary) |
Bir yol parametreleri kümesine karşılık gelen URL'yi alır. (Devralındığı yer: Control) |
GetRouteUrl(String, Object) |
Bir yol parametreleri kümesine ve yol adına karşılık gelen URL'yi alır. (Devralındığı yer: Control) |
GetRouteUrl(String, RouteValueDictionary) |
Bir yol parametreleri kümesine ve yol adına karşılık gelen URL'yi alır. (Devralındığı yer: Control) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
GetUniqueIDRelativeTo(Control) |
Belirtilen denetimin özelliğinin UniqueID ön ekli bölümünü döndürür. (Devralındığı yer: Control) |
HasControls() |
Sunucu denetiminin alt denetimler içerip içermediğini belirler. (Devralındığı yer: Control) |
HasEvents() |
Olayların denetim için mi yoksa alt denetimler için mi kaydedildiğini belirten bir değer döndürür. (Devralındığı yer: Control) |
IsLiteralContent() |
Sunucu denetiminin yalnızca değişmez içeriği barındırdığını belirler. (Devralındığı yer: Control) |
LoadControlState(Object) |
yöntemi tarafından SaveControlState() kaydedilen önceki bir sayfa isteğinden denetim durumu bilgilerini geri yükler. (Devralındığı yer: Control) |
LoadViewState(Object) |
yöntemi tarafından SaveViewState() kaydedilen önceki sayfa isteğinden görünüm durumu bilgilerini geri yükler. (Devralındığı yer: Control) |
MapPathSecure(String) |
Mutlak veya göreli bir sanal yolun eşlendiğini fiziksel yolu alır. (Devralındığı yer: Control) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
OnBubbleEvent(Object, EventArgs) |
Sunucu denetimi olayının sayfanın kullanıcı arabirimi sunucu denetimi hiyerarşisine geçirilip geçirilmeyeceğini belirler. (Devralındığı yer: Control) |
OnDataBinding(EventArgs) |
Olayı tetikler DataBinding . (Devralındığı yer: Control) |
OnInit(EventArgs) |
Init Olayı başlatır ve denetimi başlatır. |
OnLoad(EventArgs) |
Olayı tetikler Load . (Devralındığı yer: Control) |
OnPreRender(EventArgs) |
Olayı tetikler PreRender . (Devralındığı yer: Control) |
OnUnload(EventArgs) |
Olayı tetikler Unload . (Devralındığı yer: Control) |
OpenFile(String) |
Stream Bir dosyayı okumak için kullanılan alır. (Devralındığı yer: Control) |
RaiseBubbleEvent(Object, EventArgs) |
Olayın tüm kaynaklarını ve bilgilerini denetimin üst öğesine atar. (Devralındığı yer: Control) |
RemovedControl(Control) |
Bir alt denetim nesne koleksiyonundan Controls kaldırıldıktan sonra çağrılır Control . (Devralındığı yer: Control) |
Render(HtmlTextWriter) |
Sunucu denetimi içeriğini, istemcide işlenecek içeriği yazan sağlanan HtmlTextWriter bir nesneye gönderir. (Devralındığı yer: Control) |
RenderChildren(HtmlTextWriter) |
Sunucu denetiminin alt öğelerinin içeriğini sağlanan HtmlTextWriter bir nesneye aktarır ve istemcide işlenecek içeriği yazar. (Devralındığı yer: Control) |
RenderControl(HtmlTextWriter) |
Sunucu denetimi içeriğini sağlanan HtmlTextWriter bir nesneye aktarır ve izleme etkinse denetimle ilgili izleme bilgilerini depolar. (Devralındığı yer: Control) |
RenderControl(HtmlTextWriter, ControlAdapter) |
Sağlanan bir nesneyi kullanarak sunucu denetimi içeriğini sağlanan HtmlTextWriterControlAdapter bir nesneye aktarır. (Devralındığı yer: Control) |
ResolveAdapter() |
Belirtilen denetimin işlenmesinden sorumlu denetim bağdaştırıcısını alır. (Devralındığı yer: Control) |
ResolveClientUrl(String) |
Tarayıcı tarafından kullanılabilecek bir URL alır. (Devralındığı yer: Control) |
ResolveUrl(String) |
URL'yi istekte bulunan istemcide kullanılabilen bir URL'ye dönüştürür. (Devralındığı yer: Control) |
SaveControlState() |
Sayfa sunucuya geri gönderildiğinden bu yana gerçekleşen tüm sunucu denetim durumu değişikliklerini kaydeder. (Devralındığı yer: Control) |
SaveViewState() |
Sayfa sunucuya geri gönderildiğinden bu yana gerçekleşen tüm sunucu denetimi görünüm durumu değişikliklerini kaydeder. (Devralındığı yer: Control) |
SetDesignModeState(IDictionary) |
Denetim için tasarım zamanı verilerini ayarlar. (Devralındığı yer: Control) |
SetRenderMethodDelegate(RenderMethod) |
Sunucu denetimini ve içeriğini üst denetimine işlemek için bir olay işleyicisi temsilcisi atar. (Devralındığı yer: Control) |
SetTraceData(Object, Object) |
İzleme veri anahtarını ve izleme veri değerini kullanarak işleme verilerinin tasarım zamanı izlemesi için izleme verilerini ayarlar. (Devralındığı yer: Control) |
SetTraceData(Object, Object, Object) |
İzlenen nesneyi, izleme veri anahtarını ve izleme veri değerini kullanarak işleme verilerinin tasarım zamanı izlemesi için izleme verilerini ayarlar. (Devralındığı yer: Control) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
TrackViewState() |
Sunucu denetiminin nesnesinde depolanabilmeleri için sunucu denetiminde görünüm durumu değişikliklerinin izlenmesine StateBag neden olur. Bu nesneye özelliği aracılığıyla ViewState erişilebilir. (Devralındığı yer: Control) |
Ekinlikler
DataBinding |
Sunucu denetimi bir veri kaynağına bağlandığında gerçekleşir. (Devralındığı yer: Control) |
Disposed |
ASP.NET bir sayfa istendiğinde sunucu denetimi yaşam döngüsünün son aşaması olan bellekten bir sunucu denetimi serbest bırakıldığında gerçekleşir. (Devralındığı yer: Control) |
Init |
Sunucu denetimi başlatıldığında gerçekleşir. Bu, yaşam döngüsünün ilk adımıdır. (Devralındığı yer: Control) |
Load |
Sunucu denetimi nesneye Page yüklendiğinde gerçekleşir. (Devralındığı yer: Control) |
PreRender |
Nesne yüklendikten sonra Control ancak işlemeden önce gerçekleşir. (Devralındığı yer: Control) |
Unload |
Sunucu denetimi bellekten kaldırıldığında gerçekleşir. (Devralındığı yer: Control) |
Belirtik Arabirim Kullanımları
Uzantı Metotları
FindDataSourceControl(Control) |
Belirtilen denetim için veri denetimiyle ilişkili veri kaynağını döndürür. |
FindFieldTemplate(Control, String) |
Belirtilen denetimin adlandırma kapsayıcısında belirtilen sütun için alan şablonunu döndürür. |
FindMetaTable(Control) |
İçeren veri denetimi için meta tablo nesnesini döndürür. |