WebPartManager.StaticConnections Propriedade
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.
Obtém uma referência à coleção de todos WebPartConnection os objetos numa página Web que são definidos como ligações estáticas.
public:
property System::Web::UI::WebControls::WebParts::WebPartConnectionCollection ^ StaticConnections { System::Web::UI::WebControls::WebParts::WebPartConnectionCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.WebParts.WebPartConnectionCollection StaticConnections { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.StaticConnections : System.Web.UI.WebControls.WebParts.WebPartConnectionCollection
Public ReadOnly Property StaticConnections As WebPartConnectionCollection
Valor de Propriedade
A WebPartConnectionCollection que contém todas as ligações estáticas na página.
- Atributos
Exemplos
O exemplo de código seguinte demonstra o uso programático da StaticConnections propriedade.
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.
Um ficheiro de código-fonte que contém dois controlos personalizados WebPart e uma interface personalizada.
Uma página web que contém dois controlos personalizados WebPart que podem ser ligados, e um
<asp:webpartmanager>elemento.Uma explicação de como o exemplo funciona num navegador.
O código seguinte contém apenas a parte da página Web do exemplo. Também terá de obter as duas primeiras partes do exemplo — o controlo personalizado do utilizador e o código-fonte dos controlos personalizados e interface — da secção Exemplo da WebPartManager visão geral da classe. Esse tema também explica as tuas opções para compilar os WebPart controlos.
A terceira parte do exemplo do código é a página Web. A marcação declarativa da página 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.
<%@ 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>
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
A StaticConnections propriedade é usada pelo WebPartManager controlo para rastrear e gerir todas as ligações estáticas numa página. Uma ligação estática, ao contrário de uma ligação dinâmica, não precisa de ser adicionada a uma página sempre que esta é renderizada.
A coleção referenciada por esta propriedade contém todas as ligações estáticas que existem na página, quer sejam criadas programaticamente ou especificadas com um <asp:webpartconnection> elemento na marcação da página.