WebPartManager.GetConsumerConnectionPoints(WebPart) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recupera a coleção de ConsumerConnectionPoint objetos que podem atuar como pontos de ligação a partir de um controlo de servidor que atua como consumidor dentro de uma ligação 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 controlo de servidor que atua como consumidor numa ligação.
Devoluções
A ConsumerConnectionPointCollection que contém todos os pontos de ligação no consumidor.
Exceções
webPart é null.
Exemplos
O exemplo de código seguinte demonstra como usar o GetConsumerConnectionPoints método.
O exemplo de código tem quatro partes:
Um controlo de utilizador que permite alterar modos de visualização numa página de Web Parts.
Uma página web que contém dois controlos personalizados WebPart que podem ser ligados, e um
<asp:webpartmanager>elemento.Um ficheiro de código-fonte que contém dois controlos personalizados WebPart e uma interface personalizada.
Uma explicação de como o exemplo funciona num navegador.
A primeira parte do exemplo de código é o controlo do utilizador para alterar os modos de visualização. Pode obter o código-fonte do controlo de utilizador a partir da secção Exemplo da WebPartManager visão geral da classe. Para mais informações sobre modos de visualização e como funciona o controlo do utilizador, consulte o tópico Guia: Alterar Modos de Visualização numa Página de Web Parts.
A marcação declarativa para a página Web contém Register diretivas tanto para o controlo do utilizador como para os controlos personalizados. Existe um <asp:webpartmanager> elemento, um <asp:webpartzone> elemento para conter os controlos personalizados e um <asp:connectionszone> elemento. Note que, no Page_Load método, o código verifica se uma ligação já existe e, caso contrário, define um fornecedor, um consumidor e os respetivos pontos de ligação, e depois adiciona uma nova ligação ao conjunto de ligações estáticas referenciadas pela StaticConnections propriedade. Note-se que o ConsumerConnectionPointCollection objeto recuperado usando o GetConsumerConnectionPoints método é então passado para o CanConnectWebParts método para determinar se é possível criar uma ligação entre os dois controlos.
<%@ 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 controlos. Pode obter este código, e instruções para o compilar, na secção Example da WebPartManager visão geral da classe.
Depois de carregar a página Web num navegador, clique no menu suspenso de controlo da lista Modo de Exibição e selecione Ligar para mudar a página para o modo de ligar. O modo Connect usa o <asp:connectionszone> elemento para permitir criar ligações entre controlos. No modo de ligar, clique na seta para baixo na barra de título do controlo do código postal para ativar o menu de verbos e depois clique em Conectar. Depois de aparecer a interface de utilizador (UI) da ligação, repare que uma ligação já foi criada pelo código contido no Page_Load método. Se regressar a esta página numa sessão posterior do navegador, esta ligação estática já estará estabelecida e não precisará de ser recriada cada vez que a página carregar.
Observações
Uma ligação Web Parts envolve sempre exatamente dois controlos, um atuando como fornecedor de dados e outro como consumidor dos dados. Cada controlo deve ter um ou mais métodos definidos como pontos de ligação. No caso de um controlo de consumidor, os seus pontos de ligação são ConsumerConnectionPoint objetos. Recuperar os pontos de ligação do consumidor é um passo necessário na formação de uma ligação Web Parts.
Um consumidor deve sempre ter pelo menos um ponto de ligação para poder estabelecer uma ligação. O GetConsumerConnectionPoints método verifica um controlo do consumidor e recupera uma coleção de todos os seus pontos de ligação. Se um WebPart controlo não tiver pontos de ligação, o método devolve uma coleção vazia.