Compartir a través de


WebPartManager.ConnectWebParts Método

Definición

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

provider
WebPart

Control WebPart que tiene el rol de suministrar datos a otro control conectado.

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

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

provider
WebPart

Control WebPart que tiene el rol de suministrar datos a otro control conectado.

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

Se aplica a