WebPartManager.ConnectWebParts 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í.
Crea una conexión entre dos controles WebPart que residen en una zona WebPartZoneBase (u otros controles de servidor capaces de formar conexiones).
Sobrecargas
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) |
Crea una conexión entre dos controles WebPart o GenericWebPart utilizando sólo las referencias a los controles y sus objetos ConnectionPoint especificados. |
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) |
Crea una conexión entre dos controles WebPart o GenericWebPart utilizando las referencias a los controles, sus objetos ConnectionPoint especificados y un objeto WebPartTransformer. |
Comentarios
El ConnectWebParts método forma una conexión entre dos WebPart controles que se pueden conectar. Antes de llamar a este método para crear una conexión, es posible que también desee llamar al CanConnectWebParts método en una comprobación condicional para asegurarse de que los controles cumplen los requisitos para formar una conexión.
Nota
También es posible crear una conexión entre dos controles de servidor que no WebPart son controles. En general, los dos controles tendrían que ser controles de servidor personalizados (por ejemplo, controles que heredan de los controles de WebControl servidor de ASP.NET existentes) para poder agregar los miembros necesarios. Los controles también tendrían que cumplir los requisitos especificados a continuación.
Cualquier tipo de escenario de conexión entre dos controles debe cumplir los siguientes requisitos para poder conectarse:
Cada control reside en una WebPartZoneBase zona (no tiene que ser la misma zona).
Como se implementa en el conjunto de controles de elementos web, el control de proveedor en una conexión implementa una interfaz como un método público que actúa como devolución de llamada al proveedor y tiene un
ConnectionProvider
atributo de metadatos en el método para identificarlo como un punto de conexión de proveedor. Dado que el GetProviderConnectionPoints método que recupera los puntos de conexión del proveedor es virtual, un control derivado WebPartManager no tiene necesariamente que usar el mismo atributo de metadatos.Como se implementa en el conjunto de controles de elementos web, el control de consumidor de una conexión también tiene un método especial que le permite obtener una referencia a la interfaz expuesta en el método de devolución de llamada del proveedor y el consumidor tiene un
ConnectionConsumer
atributo de metadatos en el método para identificarlo como punto de conexión de consumidor. Dado que el GetConsumerConnectionPoints método que recupera los puntos de conexión del consumidor es virtual, un control derivado WebPartManager no tiene necesariamente que usar el mismo atributo de metadatos.Los métodos de devolución de llamada deben ser compatibles, en que el consumidor puede usar el tipo de interfaz proporcionada en el método de devolución de llamada del proveedor (lo que significa que el consumidor y el proveedor pueden compartir datos directamente) o el desarrollador debe usar un WebPartTransformer objeto para transformar los datos del proveedor en un formulario que el consumidor pueda usar.
Importante
Cuando no necesite un transformador, use la sobrecarga del ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) método . Cuando necesite un transformador, use la sobrecarga del ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) método .
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)
Crea una conexión entre dos controles WebPart o GenericWebPart utilizando sólo las referencias a los controles y sus 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
- providerConnectionPoint
- ProviderConnectionPoint
Método que actúa como método de devolución de llamada para la conexión. Tal como está implementado en el conjunto de controles de elementos Web, éste es un método público de provider
que está marcado con un atributo de metadatos ConnectionProvider
.
- consumer
- WebPart
Control WebPart que tiene el rol de recibir los datos de provider
y procesarlos o mostrarlos.
- consumerConnectionPoint
- ConsumerConnectionPoint
Método que conecta con providerConnectionPoint
para recibir los datos de la conexión. Tal como está implementado en el conjunto de controles de elementos Web, éste es un método público de consumer
que está marcado con un atributo de metadatos ConnectionConsumer
.
Devoluciones
Objeto WebPartConnection que contiene la diversa información sobre el proveedor y el consumidor necesaria para establecer una conexión.
Excepciones
La colección del control WebPartManager de colecciones dinámicas es de sólo lectura.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar este método para crear una conexión mediante programación. Para obtener el código completo necesario para ejecutar el ejemplo, consulte la sección Ejemplo de la información general de la WebPartManager clase. En ese ejemplo, necesitará el código fuente para el control de usuario que le permite cambiar los modos de visualización en la página y el código fuente de los dos controles personalizados WebPart .
El código de la página web que hospeda los dos controles sigue. La página usa Register
directivas en la parte superior para declarar el control de usuario y los controles personalizados. A continuación, se hace referencia a los controles personalizados mediante declaración dentro de un <asp:webpartzone>
elemento . El código que controla el Button1_Click
método crea una conexión entre los controles mediante el 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>
Después de cargar la página en un explorador, haga clic en el botón Conectar controles de elementos web para formar la conexión. A continuación, puede escribir algunos datos en el cuadro de texto y hacer clic en el botón Escribir código postal de 5 dígitos para demostrar que los controles están conectados y que los datos especificados en el primer control se actualizan en el segundo.
Comentarios
Esta sobrecarga se usa para conectar controles cuando sus puntos de conexión son lo suficientemente compatibles que pueden conectarse sin usar un WebPartTransformer objeto . Cuando se llama a esta sobrecarga del método, simplemente pasa la llamada a la otra versión sobrecargada del método y pasa null
para el parámetro que requiere un WebPartTransformer objeto .
Al intentar conectar dos controles mediante programación, puede usar el CanConnectWebParts método en una comprobación condicional para determinar si los controles se pueden conectar directamente.
Consulte también
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- controles de elementos web de ASP.NET
Se aplica a
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer)
Crea una conexión entre dos controles WebPart o GenericWebPart utilizando las referencias a los controles, sus objetos ConnectionPoint especificados y un 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
Método público de provider
que se marca con un atributo de metadatos ConnectionProvider
y actúa como método de devolución de llamada para la conexión.
- consumer
- WebPart
Control WebPart que tiene el rol de recibir datos de provider
o transformer
, y procesarlos o mostrarlos.
- consumerConnectionPoint
- ConsumerConnectionPoint
Método público de consumer
que está marcado con un atributo de metadatos ConnectionConsumer
y conecta con providerConnectionPoint
para recibir los datos de la conexión.
- transformer
- WebPartTransformer
Objeto WebPartTransformer que habilita una conexión entre dos controles convirtiendo los datos de provider
en un formato que consumer
puede procesar.
Devoluciones
Objeto WebPartConnection que contiene información sobre el proveedor, consumidor y transformador necesarios para una conexión.
Excepciones
Las conexiones ya se han activado en PreRender.
Comentarios
Esta sobrecarga se usa para conectar controles cuando sus puntos de conexión son incompatibles. La incompatibilidad se produce cuando consumer
implementa una interfaz diferente a provider
como su punto de conexión. El transformador convierte los datos en un tipo que se puede entender mediante consumer
.
Consulte también
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- WebPartTransformer
- controles de elementos web de ASP.NET