WebPartManager.ConnectWebParts Método

Definición

Crea una conexión entre dos WebPart controles (u otros controles de servidor capaces de formar conexiones) que residen en una WebPartZoneBase zona.

Sobrecargas

Nombre Description
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Crea una conexión entre dos WebPart o GenericWebPart controles utilizando solo las referencias a los controles y sus objetos especificados ConnectionPoint .

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer)

Crea una conexión entre dos WebPart o GenericWebPart controles mediante las referencias a los controles, sus objetos especificados ConnectionPoint y un WebPartTransformer objeto .

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.

Note

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 WebControl o controles de 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).

  • Tal 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 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 que se expone 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 puntos de conexión de 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 WebPart o GenericWebPart controles utilizando solo las referencias a los controles y sus objetos especificados ConnectionPoint .

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 proporcionar datos a otro control conectado.

providerConnectionPoint
ProviderConnectionPoint

Método que actúa como método de devolución de llamada para la conexión. Como se implementa en el conjunto de controles de elementos web, se trata de un método público en provider que está marcado con un ConnectionProvider atributo de metadatos.

consumer
WebPart

Control WebPart que tiene el rol de recibir datos de providery, a continuación, procesarlos o mostrarlos.

consumerConnectionPoint
ConsumerConnectionPoint

Método que se conecta con providerConnectionPoint para recibir los datos de la conexión. Como se implementa en el conjunto de controles de elementos web, se trata de un método público en consumer que está marcado con un ConnectionConsumer atributo de metadatos.

Devoluciones

que WebPartConnection contiene la información diversa sobre el proveedor y el consumidor necesarios para una conexión.

Excepciones

La WebPartManager colección del control de colecciones dinámicas es de solo 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, vea 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 .

A continuación se muestra el código de la página web que hospeda los dos controles. 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 WebPart o GenericWebPart controles mediante las referencias a los controles, sus objetos especificados ConnectionPoint y un WebPartTransformer objeto .

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

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

providerConnectionPoint
ProviderConnectionPoint

Un método público en provider que está marcado con un ConnectionProvider atributo de metadatos y actúa como método de devolución de llamada para la conexión.

consumer
WebPart

que WebPart tiene el rol de recibir datos de provider o transformery, a continuación, procesarlos o mostrarlos.

consumerConnectionPoint
ConsumerConnectionPoint

Un método público en consumer que está marcado con un ConnectionConsumer atributo de metadatos y se conecta con providerConnectionPoint para recibir los datos de la conexión.

transformer
WebPartTransformer

que WebPartTransformer permite una conexión entre dos controles mediante la conversión de los datos de provider a un formato que consumer puede procesar.

Devoluciones

que WebPartConnection contiene la información sobre el proveedor, el consumidor y el 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 punto de conexión. El transformador convierte los datos en un tipo que puede entender consumer.

Consulte también

Se aplica a