WebPartManager.GetProviderConnectionPoints(WebPart) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Recupera la colección de objetos ProviderConnectionPoint que pueden actuar como puntos de conexión de un control de servidor que, a su vez, actúa como proveedor en una conexión de elementos Web.
public:
virtual System::Web::UI::WebControls::WebParts::ProviderConnectionPointCollection ^ GetProviderConnectionPoints(System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
public virtual System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection GetProviderConnectionPoints (System.Web.UI.WebControls.WebParts.WebPart webPart);
abstract member GetProviderConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection
override this.GetProviderConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection
Public Overridable Function GetProviderConnectionPoints (webPart As WebPart) As ProviderConnectionPointCollection
Parámetros
- webPart
- WebPart
Control de servidor que actúa como proveedor en una conexión.
Devoluciones
Colección ProviderConnectionPointCollection que contiene todos los puntos de conexión en el proveedor.
Excepciones
webPart
es null
.
Ejemplos
En el ejemplo de código siguiente se muestra cómo utilizar el método GetProviderConnectionPoints.
El ejemplo tiene cuatro partes:
Control de usuario que permite cambiar los modos de visualización en una página de elementos web.
Una página web que contiene dos controles personalizados WebPart que se pueden conectar y un
<asp:webpartmanager>
elemento .Un archivo de código fuente que contiene dos controles personalizados WebPart y una interfaz personalizada.
Explicación de cómo funciona el ejemplo en un explorador.
La primera parte del ejemplo de código es el control de usuario para cambiar los modos de visualización. Puede obtener el código fuente del control de usuario en la sección Ejemplo de la información general de la WebPartManager clase. Para obtener más información sobre los modos de visualización y cómo funciona el control de usuario, vea Tutorial: Cambiar modos de presentación en una página de elementos web.
El marcado declarativo de la página web contiene Register
directivas para el control de usuario y los controles personalizados. Hay un <asp:webpartmanager>
elemento , un <asp:webpartzone>
elemento que contiene los controles personalizados y un <asp:connectionszone>
elemento . Observe que en el Page_Load
método , el código comprueba si ya existe una conexión y, si no es así, define un proveedor, un consumidor y sus respectivos puntos de conexión y, a continuación, agrega una nueva conexión al conjunto de conexiones estáticas a las que hace referencia la StaticConnections propiedad . Tenga en cuenta que el ProviderConnectionPointCollection objeto que se recupera mediante el GetProviderConnectionPoints método se pasa al CanConnectWebParts método para determinar si se puede crear una conexión entre los dos controles.
<%@ 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>
La tercera parte del ejemplo es el código fuente de los controles. Puede obtener este código e instrucciones para compilarlo, en la sección Ejemplo de la información general de la WebPartManager clase.
Después de cargar la página web en un explorador, haga clic en el control de lista desplegable Modo de visualización y seleccione Conectar para cambiar la página al modo de conexión. El modo de conexión usa el <asp:connectionszone>
elemento para permitirle crear conexiones entre controles. En el modo de conexión, haga clic en la flecha hacia abajo en la barra de título del control código postal para activar su menú de verbos y, a continuación, haga clic en Conectar. Una vez que aparezca la interfaz de usuario (UI) de conexión, observe que el código incluido en el Page_Load
método ya ha creado una conexión. Si vuelve a esta página en una sesión posterior del explorador, esta conexión estática ya se establecerá y no tendrá que volver a crearse cada vez que se cargue la página.
Comentarios
Una conexión de elementos web siempre implica exactamente dos controles, uno que actúa como proveedor de datos, el otro que actúa como consumidor de datos. Cada control debe tener uno o varios métodos definidos como puntos de conexión. En el caso de un control de proveedor, sus puntos de conexión son ProviderConnectionPoint objetos .
Un proveedor siempre debe tener al menos un punto de conexión para poder establecer una conexión. El GetProviderConnectionPoints método comprueba un control de proveedor y recupera una colección de todos sus puntos de conexión. Recuperar los puntos de conexión del proveedor es un paso necesario para formar una conexión de elementos web.