WebPartManager.ConnectWebParts Método

Definição

Cria uma ligação entre dois WebPart controlos (ou outros controlos de servidor capazes de formar ligações) que residem numa WebPartZoneBase zona.

Sobrecargas

Name Description
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Cria uma ligação entre dois WebPart controlos GenericWebPart usando apenas as referências aos controlos e aos seus objetos especificados ConnectionPoint .

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

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

Observações

O ConnectWebParts método forma uma ligação entre quaisquer dois WebPart controlos que podem ser ligados. Antes de chamar este método para criar uma ligação, pode também querer chamar o CanConnectWebParts método numa verificação condicional para garantir que os controlos cumprem os requisitos para formar uma ligação.

Note

Também é possível criar uma ligação entre dois controlos de servidor que não WebPart são controlos. Em geral, os dois controlos teriam de ser controlos de servidor personalizados (por exemplo, controlos que herdam de WebControl ou controlos de ASP.NET existentes do servidor) para que se possam adicionar os membros necessários. Os controlos também teriam de cumprir os requisitos especificados abaixo.

Qualquer tipo de cenário de ligação entre dois controlos deve cumprir os seguintes requisitos para poder ligar-se:

  • Cada controlo reside numa WebPartZoneBase zona (não tem de ser a mesma zona).

  • Tal como implementado no conjunto de controlo Web Parts, o controlo do fornecedor numa ligação implementa uma interface como método público que serve como callback ao fornecedor, e tem um ConnectionProvider atributo de metadados no método para o identificar como ponto de ligação ao fornecedor. Como o GetProviderConnectionPoints método que recupera os pontos de ligação do fornecedor é virtual, um controlo derivado WebPartManager não tem necessariamente de usar o mesmo atributo de metadados.

  • Tal como implementado no conjunto de controlo Web Parts, o controlo do consumidor numa ligação também tem um método especial que lhe permite obter uma referência à interface exposta no método de callback do fornecedor, e o consumidor tem um ConnectionConsumer atributo de metadados no método para o identificar como ponto de ligação do consumidor. Como o GetConsumerConnectionPoints método que recupera pontos de ligação do consumidor é virtual, um controlo derivado WebPartManager não tem necessariamente de usar o mesmo atributo de metadados.

  • Os métodos de callback devem ser compatíveis, no sentido de que o consumidor pode usar o tipo de interface fornecido no método de callback do fornecedor (significando que o consumidor e o fornecedor podem partilhar dados diretamente), ou o programador deve usar um WebPartTransformer objeto para transformar os dados do fornecedor numa forma que o consumidor possa usar.

    Importante

    Se não precisar de transformador, use o ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) método de sobrecarga. Quando precisares de um transformador, usa o ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) método de sobrecarga.

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Cria uma ligação entre dois WebPart controlos GenericWebPart usando apenas as referências aos controlos e aos seus objetos especificados ConnectionPoint .

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 WebPart controlo que tem a função de fornecer dados a outro controlo ligado.

providerConnectionPoint
ProviderConnectionPoint

Um método que serve como método de callback para a ligação. Tal como implementado no conjunto de controlo Web Parts, este é um método público marcado provider com um ConnectionProvider atributo de metadados.

consumer
WebPart

Um WebPart controlo que tem a função de receber dados de provider, e depois processá-los ou exibi-los.

consumerConnectionPoint
ConsumerConnectionPoint

Um método que se liga com providerConnectionPoint para receber os dados da ligação. Tal como implementado no conjunto de controlo Web Parts, este é um método público marcado consumer com um ConnectionConsumer atributo de metadados.

Devoluções

Um WebPartConnection que contém as várias informações sobre o fornecedor e o consumidor necessárias para uma ligação.

Exceções

A WebPartManager coleção dinâmica do controlo é apenas de leitura.

Exemplos

O exemplo de código seguinte demonstra como usar este método para criar uma ligação programaticamente. Para o código completo necessário para executar o exemplo, consulte a secção Exemplo da WebPartManager visão geral da classe. A partir desse exemplo, vai precisar do código-fonte do controlo do utilizador que permite alterar os modos de visualização na página, e do código-fonte dos dois controlos personalizados WebPart .

Segue-se o código da página Web que aloja os dois controlos. A página utiliza Register diretivas no topo para declarar o controlo do utilizador e os controlos personalizados. Os controlos personalizados são então referenciados declarativamente dentro de um <asp:webpartzone> elemento. O código que gere o Button1_Click método cria uma ligação entre os controlos ao usar 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 num navegador, clique no botão Conectar Controlos de WebPart para formar a ligação. Pode então introduzir alguns dados na caixa de texto e clicar no botão Introduzir Código Postal de 5 dígitos para demonstrar que os controlos estão ligados, e que os dados introduzidos no primeiro controlo são atualizados no segundo.

Observações

Esta sobrecarga é usada para ligar os controlos quando os seus pontos de ligação são suficientemente compatíveis para que possam ligar-se sem usar um WebPartTransformer objeto. Quando esta sobrecarga do método é chamada, 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.

Quando tenta ligar dois controlos programaticamente, pode usar o CanConnectWebParts método numa verificação condicional para determinar se os controlos podem ser conectados diretamente.

Ver também

Aplica-se a

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

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

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

A WebPart que tem o papel de fornecer dados a outro controlo ligado.

providerConnectionPoint
ProviderConnectionPoint

Um método provider público é marcado com um ConnectionProvider atributo de metadados e serve como método de callback para a ligação.

consumer
WebPart

A WebPart que tem a função de receber dados de provider ou transformer, e depois processá-los ou exibi-los.

consumerConnectionPoint
ConsumerConnectionPoint

Um método consumer público em que é marcado com um ConnectionConsumer atributo de metadados, e liga-se a providerConnectionPoint para receber os dados da ligação.

transformer
WebPartTransformer

A WebPartTransformer que permite uma ligação entre dois controlos ao converter os dados para provider um formato que consumer pode ser processado.

Devoluções

A WebPartConnection que contém a informação sobre o fornecedor, consumidor e transformador necessária para uma ligação.

Exceções

As ligações já foram ativadas em PreRender.

Observações

Esta sobrecarga é usada para ligar os controlos quando os seus pontos de ligação são incompatíveis. A incompatibilidade ocorre quando consumer implementa uma interface diferente daquela provider como ponto de ligação. O transformador converte os dados num tipo que pode ser compreendido por consumer.

Ver também

Aplica-se a