Partilhar via


WebPartManager.ConnectWebParts Método

Definição

Cria uma conexão entre dois controles WebPart (ou outros controles de servidor capazes de formar conexões) que residem em uma zona WebPartZoneBase.

Sobrecargas

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Cria uma conexão entre dois controles WebPart ou GenericWebPart usando apenas as referências aos controles e seus objetos ConnectionPoint especificados.

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer)

Cria uma conexão entre dois controles WebPart ou GenericWebPart usando as referências aos controles, seus objetos ConnectionPoint especificados e um objeto WebPartTransformer.

Comentários

O ConnectWebParts método forma uma conexão entre os dois WebPart controles que podem ser conectados. Antes de chamar esse método para criar uma conexão, talvez você também queira chamar o CanConnectWebParts método em uma verificação condicional para garantir que os controles atendam aos requisitos para formar uma conexão.

Observação

Também é possível criar uma conexão entre dois controles de servidor que não WebPart são controles. Em geral, os dois controles teriam que ser controles de servidor personalizados (por exemplo, controles que herdam de controles de WebControl servidor ASP.NET existentes) para que você pudesse adicionar os membros necessários. Os controles também teriam que atender aos requisitos especificados abaixo.

Qualquer tipo de cenário de conexão entre dois controles deve atender aos seguintes requisitos para poder se conectar:

  • Cada controle reside em uma WebPartZoneBase zona (não precisa ser a mesma zona).

  • Conforme implementado no conjunto de controle de Web Parts, o controle do provedor em uma conexão implementa uma interface como um método público que serve como um retorno de chamada para o provedor e tem um ConnectionProvider atributo de metadados no método para identificá-la como um ponto de conexão do provedor. Como o GetProviderConnectionPoints método que recupera pontos de conexão do provedor é virtual, um controle derivado WebPartManager não precisa necessariamente usar o mesmo atributo de metadados.

  • Conforme implementado no conjunto de controle de Web Parts, o controle do consumidor em uma conexão também tem um método especial que permite que ele obtenha uma referência à interface exposta no método de retorno de chamada do provedor, e o consumidor tem um ConnectionConsumer atributo de metadados no método para identificá-la como um ponto de conexão do consumidor. Como o GetConsumerConnectionPoints método que recupera pontos de conexão do consumidor é virtual, um controle derivado WebPartManager não precisa necessariamente usar o mesmo atributo de metadados.

  • Os métodos de retorno de chamada devem ser compatíveis, pois o consumidor pode usar o tipo de interface fornecida no método de retorno de chamada do provedor (o que significa que o consumidor e o provedor podem compartilhar dados diretamente) ou o desenvolvedor deve usar um WebPartTransformer objeto para transformar os dados do provedor em um formulário que o consumidor pode usar.

    Importante

    Quando você não precisar de um transformador, use a sobrecarga do ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) método. Quando precisar de um transformador, use a sobrecarga do ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) método.

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Cria uma conexão entre dois controles WebPart ou GenericWebPart usando apenas as referências aos controles e seus objetos ConnectionPoint especificados.

public:
 System::Web::UI::WebControls::WebParts::WebPartConnection ^ ConnectWebParts(System::Web::UI::WebControls::WebParts::WebPart ^ provider, System::Web::UI::WebControls::WebParts::ProviderConnectionPoint ^ providerConnectionPoint, System::Web::UI::WebControls::WebParts::WebPart ^ consumer, System::Web::UI::WebControls::WebParts::ConsumerConnectionPoint ^ consumerConnectionPoint);
public System.Web.UI.WebControls.WebParts.WebPartConnection ConnectWebParts (System.Web.UI.WebControls.WebParts.WebPart provider, System.Web.UI.WebControls.WebParts.ProviderConnectionPoint providerConnectionPoint, System.Web.UI.WebControls.WebParts.WebPart consumer, System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint consumerConnectionPoint);
member this.ConnectWebParts : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ProviderConnectionPoint * System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint -> System.Web.UI.WebControls.WebParts.WebPartConnection
Public Function ConnectWebParts (provider As WebPart, providerConnectionPoint As ProviderConnectionPoint, consumer As WebPart, consumerConnectionPoint As ConsumerConnectionPoint) As WebPartConnection

Parâmetros

provider
WebPart

Um controle WebPart que tem a função de fornecer dados para outro controle conectado.

providerConnectionPoint
ProviderConnectionPoint

Um método que serve como um método de retorno de chamada para a conexão. Conforme implementado no conjunto de controles de Web Parts, esse é um método público no provider que é marcado com um atributo de metadados ConnectionProvider.

consumer
WebPart

Um controle WebPart que tem a função de receber de dados do provider e, em seguida, processá-lo ou exibi-lo.

consumerConnectionPoint
ConsumerConnectionPoint

Um método que se conecta com providerConnectionPoint para receber os dados para a conexão. Conforme implementado no conjunto de controles de Web Parts, esse é um método público no consumer que é marcado com um atributo de metadados ConnectionConsumer.

Retornos

Um WebPartConnection que contém as diversas informações sobre o provedor e o consumidor necessários para uma conexão.

Exceções

A coleção de coleções dinâmicas do controle WebPartManager é somente leitura.

Exemplos

O exemplo de código a seguir demonstra como usar esse método para criar uma conexão programaticamente. Para obter o código completo necessário para executar o exemplo, consulte a seção Exemplo da visão geral da WebPartManager classe. Nesse exemplo, você precisará do código-fonte para o controle do usuário que permite alterar os modos de exibição na página e o código-fonte dos dois controles personalizados WebPart .

O código da página da Web que hospeda os dois controles a seguir. A página usa diretivas Register na parte superior para declarar o controle de usuário e os controles personalizados. Os controles personalizados são referenciados declarativamente em um <asp:webpartzone> elemento . O código que manipula o Button1_Click método cria uma conexão entre os controles usando o ConnectWebParts método .

<%@ 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 Button1_Click(object sender, EventArgs e)
  {
    ProviderConnectionPoint provPoint = 
      mgr.GetProviderConnectionPoints(zip1)["ZipCodeProvider"];
    ConsumerConnectionPoint connPoint = 
      mgr.GetConsumerConnectionPoints(weather1)["ZipCodeConsumer"];
    WebPartConnection conn1 = mgr.ConnectWebParts(zip1, provPoint,
      weather1, connPoint);
  }

  protected void mgr_DisplayModeChanged(object sender, 
    WebPartDisplayModeEventArgs e)
  {
    if (mgr.DisplayMode == WebPartManager.ConnectDisplayMode)
      Button1.Visible = true;
    else
      Button1.Visible = false;
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr" runat="server" 
    OnDisplayModeChanged="mgr_DisplayModeChanged">
      </asp:WebPartManager>
      <uc1:DisplayModeMenuCS ID="menu1" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <aspSample:ZipCodeWebPart ID="zip1" runat="server"
            Title="Zip Code Provider" />
          <aspSample:WeatherWebPart ID="weather1" runat="server" 
            Title="Zip Code Consumer" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:ConnectionsZone ID="ConnectionsZone1" runat="server">
      </asp:ConnectionsZone>
      <asp:Button ID="Button1" runat="server" 
        Text="Connect WebPart Controls" 
        OnClick="Button1_Click" 
    Visible="false" />
    </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 Button1_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    
    Dim provPoint As ProviderConnectionPoint = _
      mgr.GetProviderConnectionPoints(zip1)("ZipCodeProvider")
    Dim connPoint As ConsumerConnectionPoint = _
      mgr.GetConsumerConnectionPoints(weather1)("ZipCodeConsumer")
    mgr.ConnectWebParts(zip1, provPoint, weather1, connPoint)

  End Sub

  Protected Sub mgr_DisplayModeChanged (ByVal sender as Object, _
    ByVal e as WebPartDisplayModeEventArgs)

    If mgr.DisplayMode is WebPartManager.ConnectDisplayMode Then
    Button1.Visible = True
    Else
    Button1.Visible = False
    End If

  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr" runat="server" 
    OnDisplayModeChanged="mgr_DisplayModeChanged">
      </asp:WebPartManager>
      <uc1:DisplayModeMenuVB ID="menu1" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <aspSample:ZipCodeWebPart ID="zip1" runat="server"
            Title="Zip Code Provider" />
          <aspSample:WeatherWebPart ID="weather1" runat="server" 
            Title="Zip Code Consumer" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:ConnectionsZone ID="ConnectionsZone1" runat="server">
      </asp:ConnectionsZone>
      <asp:Button ID="Button1" runat="server" 
        Text="Connect WebPart Controls" 
        OnClick="Button1_Click" 
    Visible="false" />
    </div>
    </form>
</body>
</html>

Depois de carregar a página em um navegador, clique no botão Conectar Controles webpart para formar a conexão. Em seguida, você pode inserir alguns dados na caixa de texto e clicar no botão Inserir CEP de 5 dígitos para demonstrar que os controles estão conectados e que os dados inseridos no primeiro controle são atualizados no segundo.

Comentários

Essa sobrecarga é usada para conectar controles quando seus pontos de conexão são suficientemente compatíveis para que eles possam se conectar sem usar um WebPartTransformer objeto . Quando essa sobrecarga do método é chamada, ela simplesmente passa a chamada para a outra versão sobrecarregada do método e passa null para o parâmetro que requer um WebPartTransformer objeto .

Ao tentar conectar dois controles programaticamente, você pode usar o CanConnectWebParts método em uma verificação condicional para determinar se os controles podem ser conectados diretamente.

Confira também

Aplica-se a

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer)

Cria uma conexão entre dois controles WebPart ou GenericWebPart usando as referências aos controles, seus objetos ConnectionPoint especificados e um objeto WebPartTransformer.

public:
 virtual System::Web::UI::WebControls::WebParts::WebPartConnection ^ ConnectWebParts(System::Web::UI::WebControls::WebParts::WebPart ^ provider, System::Web::UI::WebControls::WebParts::ProviderConnectionPoint ^ providerConnectionPoint, System::Web::UI::WebControls::WebParts::WebPart ^ consumer, System::Web::UI::WebControls::WebParts::ConsumerConnectionPoint ^ consumerConnectionPoint, System::Web::UI::WebControls::WebParts::WebPartTransformer ^ transformer);
public virtual System.Web.UI.WebControls.WebParts.WebPartConnection ConnectWebParts (System.Web.UI.WebControls.WebParts.WebPart provider, System.Web.UI.WebControls.WebParts.ProviderConnectionPoint providerConnectionPoint, System.Web.UI.WebControls.WebParts.WebPart consumer, System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint consumerConnectionPoint, System.Web.UI.WebControls.WebParts.WebPartTransformer transformer);
abstract member ConnectWebParts : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ProviderConnectionPoint * System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint * System.Web.UI.WebControls.WebParts.WebPartTransformer -> System.Web.UI.WebControls.WebParts.WebPartConnection
override this.ConnectWebParts : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ProviderConnectionPoint * System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint * System.Web.UI.WebControls.WebParts.WebPartTransformer -> System.Web.UI.WebControls.WebParts.WebPartConnection
Public Overridable Function ConnectWebParts (provider As WebPart, providerConnectionPoint As ProviderConnectionPoint, consumer As WebPart, consumerConnectionPoint As ConsumerConnectionPoint, transformer As WebPartTransformer) As WebPartConnection

Parâmetros

provider
WebPart

Um WebPart que tem a função de fornecer dados para outro controle conectado.

providerConnectionPoint
ProviderConnectionPoint

Um método público no provider que é marcado com um atributo de metadados ConnectionProvider e serve como um método de retorno de chamada para a conexão.

consumer
WebPart

Um WebPart que tem a função de receber de dados do provider ou transformer e, em seguida, processá-lo ou exibi-lo.

consumerConnectionPoint
ConsumerConnectionPoint

Um método público no consumer que é marcado com um atributo de metadados ConnectionConsumer e conecta-se com providerConnectionPoint para receber os dados para a conexão.

transformer
WebPartTransformer

Um WebPartTransformer que permite uma conexão entre dois controles, convertendo os dados do provider para um formato que consumer possa processar.

Retornos

Um WebPartConnection que contém as informações sobre o provedor, o consumidor e o transformador, necessárias para uma conexão.

Exceções

As conexões já foram ativadas em PreRender.

Comentários

Essa sobrecarga é usada para conectar controles quando seus pontos de conexão são incompatíveis. A incompatibilidade ocorre quando consumer implementa uma interface diferente do provider ponto de conexão. O transformador converte os dados em um tipo que pode ser compreendido por consumer.

Confira também

Aplica-se a