WebPartManager.ConnectWebParts Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- controles de Web Parts ASP.NET
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
- 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
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- WebPartTransformer
- controles de Web Parts ASP.NET