Sdílet prostřednictvím


ProxyWebPartManager Třída

Definice

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
ProxyWebPartManager
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="&nbsp;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="&nbsp;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 WeatherWebParta 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 <asp:proxywebpartmanager> na stránce obsahu.

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 null.

(Zděděno od Control)
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 id parametru.

(Zděděno od Control)
FindControl(String, Int32)

Vyhledá v aktuálním kontejneru pojmenování serverový ovládací prvek se zadaným id a celočíselným číslem zadaným v parametru pathOffset , který pomáhá při hledání. Tuto verzi metody byste neměli FindControl přepsat.

(Zděděno od Control)
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í

IControlBuilderAccessor.ControlBuilder

Popis tohoto člena najdete v tématu ControlBuilder.

(Zděděno od Control)
IControlDesignerAccessor.GetDesignModeState()

Popis tohoto člena najdete v tématu GetDesignModeState().

(Zděděno od Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Popis tohoto člena najdete v tématu SetDesignModeState(IDictionary).

(Zděděno od Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Popis tohoto člena najdete v tématu SetOwnerControl(Control).

(Zděděno od Control)
IControlDesignerAccessor.UserData

Popis tohoto člena najdete v tématu UserData.

(Zděděno od Control)
IDataBindingsAccessor.DataBindings

Popis tohoto člena najdete v tématu DataBindings.

(Zděděno od Control)
IDataBindingsAccessor.HasDataBindings

Popis tohoto člena najdete v tématu HasDataBindings.

(Zděděno od Control)
IExpressionsAccessor.Expressions

Popis tohoto člena najdete v tématu Expressions.

(Zděděno od Control)
IExpressionsAccessor.HasExpressions

Popis tohoto člena najdete v tématu HasExpressions.

(Zděděno od Control)
IParserAccessor.AddParsedSubObject(Object)

Popis tohoto člena najdete v tématu AddParsedSubObject(Object).

(Zděděno od Control)

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.

Platí pro

Viz také