WebPartManager.GetConsumerConnectionPoints(WebPart) Método

Definição

Recupera a coleção de objetos ConsumerConnectionPoint que podem atuar como pontos de conexão de um controle de servidor que atua como um consumidor em uma conexão de Web Parts.

public:
 virtual System::Web::UI::WebControls::WebParts::ConsumerConnectionPointCollection ^ GetConsumerConnectionPoints(System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
public virtual System.Web.UI.WebControls.WebParts.ConsumerConnectionPointCollection GetConsumerConnectionPoints (System.Web.UI.WebControls.WebParts.WebPart webPart);
abstract member GetConsumerConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ConsumerConnectionPointCollection
override this.GetConsumerConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ConsumerConnectionPointCollection
Public Overridable Function GetConsumerConnectionPoints (webPart As WebPart) As ConsumerConnectionPointCollection

Parâmetros

webPart
WebPart

Um controle de servidor que atua como um consumidor em uma conexão.

Retornos

ConsumerConnectionPointCollection

Um ConsumerConnectionPointCollection que contém todos os pontos de conexão no consumidor.

Exceções

webPart é null.

Exemplos

O exemplo de código a seguir demonstra como usar o GetConsumerConnectionPoints método.

O exemplo de código tem quatro partes:

  • Um controle de usuário que permite alterar os modos de exibição em uma página Web Parts.

  • Uma página da Web que contém dois controles personalizados WebPart que podem ser conectados e um <asp:webpartmanager> elemento.

  • Um arquivo de código-fonte que contém dois controles personalizados WebPart e uma interface personalizada.

  • Uma explicação de como o exemplo funciona em um navegador.

A primeira parte do exemplo de código é o controle do usuário para alterar os modos de exibição. Você pode obter o código-fonte para o controle do usuário na seção Exemplo da visão geral da WebPartManager classe. Para obter mais informações sobre modos de exibição e como o controle do usuário funciona, consulte o tópico Passo a passo: Alterando modos de exibição em uma página de Web Parts.

A marcação declarativa para a página da Web contém Register diretivas para o controle do usuário e os controles personalizados. Há um <asp:webpartmanager> elemento, um <asp:webpartzone> elemento para conter os controles personalizados e um <asp:connectionszone> elemento. Observe que, no Page_Load método, o código verifica se uma conexão já existe e, se não, define um provedor, um consumidor e seus respectivos pontos de conexão e adiciona uma nova conexão ao conjunto de conexões estáticas referenciadas pela StaticConnections propriedade. Observe que o ConsumerConnectionPointCollection objeto recuperado usando o GetConsumerConnectionPoints método é então passado para o CanConnectWebParts método para determinar se uma conexão entre os dois controles pode ser criada.

<%@ Page Language="C#" %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeMenuCS" 
  Src="DisplayModeMenuCS.ascx" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.CS.Controls" 
  Assembly="ConnectionSampleCS"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  protected void Page_Load(object sender, EventArgs e)
  {
    
    // Define provider, consumer, and connection points.
    WebPart provider = mgr.WebParts["zip1"];
    ProviderConnectionPoint provConnPoint =
      mgr.GetProviderConnectionPoints(provider)["ZipCodeProvider"];
    WebPart consumer = mgr.WebParts["weather1"];
    ConsumerConnectionPoint consConnPoint =
      mgr.GetConsumerConnectionPoints(consumer)["ZipCodeConsumer"];
    
    // Check whether the connection already exists.
    if (mgr.CanConnectWebParts(provider, provConnPoint,
      consumer, consConnPoint))
    {
      // Create a new static connection.
      WebPartConnection conn = new WebPartConnection();
      conn.ID = "staticConn1";
      conn.ConsumerID = "weather1";
      conn.ConsumerConnectionPointID = "ZipCodeConsumer";
      conn.ProviderID = "zip1";
      conn.ProviderConnectionPointID = "ZipCodeProvider";
      mgr.StaticConnections.Add(conn);
    }
 }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <!-- Reference the WebPartManager control. -->
      <asp:WebPartManager ID="mgr" runat="server" />   
    <div>
      <uc1:DisplayModeMenuCS ID="displaymode1" 
        runat="server" />
      <!-- Reference consumer and provider controls 
           in a zone. -->
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <aspSample:ZipCodeWebPart ID="zip1" 
            runat="server" 
            Title="Zip Code Control"/>
          <aspSample:WeatherWebPart ID="weather1" 
            runat="server" 
            Title="Weather Control" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <!-- Add a ConnectionsZone so users can connect 
           controls. -->
      <asp:ConnectionsZone ID="ConnectionsZone1" 
        runat="server" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeMenuVB" 
  Src="DisplayModeMenuVB.ascx" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.VB.Controls" 
  Assembly="ConnectionSampleVB"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Protected Sub Page_Load(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    
    ' Define provider, consumer, and connection points.
    Dim provider As WebPart = mgr.WebParts("zip1")
    Dim provConnPoint As ProviderConnectionPoint = _
      mgr.GetProviderConnectionPoints(provider)("ZipCodeProvider")
    Dim consumer As WebPart = mgr.WebParts("weather1")
    Dim consConnPoint As ConsumerConnectionPoint = _
      mgr.GetConsumerConnectionPoints(consumer)("ZipCodeConsumer")
    
    ' Check whether the connection already exists.
    If mgr.CanConnectWebParts(provider, provConnPoint, _
      consumer, consConnPoint) Then
      ' Create a new static connection.
      Dim conn As New WebPartConnection()
      conn.ID = "staticConn1"
      conn.ConsumerID = "weather1"
      conn.ConsumerConnectionPointID = "ZipCodeConsumer"
      conn.ProviderID = "zip1"
      conn.ProviderConnectionPointID = "ZipCodeProvider"
      mgr.StaticConnections.Add(conn)
    End If
    
  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <!-- Reference the WebPartManager control. -->
      <asp:WebPartManager ID="mgr" runat="server" />   
    <div>
      <uc1:DisplayModeMenuVB ID="displaymode1" 
        runat="server" />
      <!-- Reference consumer and provider controls 
           in a zone. -->
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <aspSample:ZipCodeWebPart ID="zip1" 
            runat="server" 
            Title="Zip Code Control"/>
          <aspSample:WeatherWebPart ID="weather1" 
            runat="server" 
            Title="Weather Control" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <!-- Add a ConnectionsZone so users can connect 
           controls. -->
      <asp:ConnectionsZone ID="ConnectionsZone1" 
        runat="server" />
    </div>
    </form>
</body>
</html>

A terceira parte do exemplo é o código-fonte dos controles. Você pode obter esse código e instruções para compilá-lo na seção Exemplo da visão geral da WebPartManager classe.

Depois de carregar a página da Web em um navegador, clique no controle de lista suspensa modo de exibição e selecione Conexão para alternar a página para o modo de conexão. Conexão modo usa o <asp:connectionszone> elemento para permitir que você crie conexões entre controles. No modo de conexão, clique na seta para baixo na barra de título do controle ZIP Code para ativar seu menu de verbos e clique em Conexão. Depois que a interface do usuário (interface do usuário) de conexão for exibida, observe que uma conexão já foi criada pelo código contido no Page_Load método. Se você retornar a esta página em uma sessão posterior do navegador, essa conexão estática já será estabelecida e não precisará ser recriada sempre que a página for carregada.

Comentários

Uma conexão Web Parts sempre envolve exatamente dois controles, um atuando como provedor de dados, o outro atuando como consumidor de dados. Cada controle deve ter um ou mais métodos definidos como pontos de conexão. No caso de um controle do consumidor, seus pontos de conexão são ConsumerConnectionPoint objetos. Recuperar os pontos de conexão do consumidor é uma etapa necessária para formar uma conexão Web Parts.

Um consumidor deve sempre ter pelo menos um ponto de conexão para conseguir estabelecer uma conexão. O GetConsumerConnectionPoints método verifica um controle do consumidor e recupera uma coleção de todos os seus pontos de conexão. Se um WebPart controle não tiver pontos de conexão, o método retornará uma coleção vazia.

Aplica-se a

Confira também