WebPartManager.ConnectWebParts Methode

Definition

Erstellt eine Verbindung zwischen zwei WebPart-Steuerelementen (oder sonstigen Serversteuerelementen, die Verbindungen bilden können), die sich in einer WebPartZoneBase-Zone befinden.

Überlädt

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Erstellt nur mithilfe der Verweise auf die Steuerelemente und ihre angegebenen WebPart-Objekte eine Verbindung zwischen zwei GenericWebPart-Steuerelementen oder ConnectionPoint-Steuerelementen.

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

Erstellt mithilfe der Verweise auf die Steuerelemente, ihre angegebenen WebPart-Objekte und ein GenericWebPart-Objekt eine Verbindung zwischen zwei ConnectionPoint-Steuerelementen oder WebPartTransformer-Steuerelementen.

Hinweise

Die ConnectWebParts -Methode stellt eine Verbindung zwischen zwei WebPart beliebigen Steuerelementen her, die verbunden werden können. Bevor Sie diese Methode zum Erstellen einer Verbindung aufrufen, können Sie die CanConnectWebParts -Methode auch in einer bedingten Überprüfung aufrufen, um sicherzustellen, dass die Steuerelemente die Anforderungen zum Herstellen einer Verbindung erfüllen.

Hinweis

Es ist auch möglich, eine Verbindung zwischen zwei Serversteuerelementen herzustellen, die keine WebPart Steuerelemente sind. Im Allgemeinen müssen die beiden Steuerelemente benutzerdefinierte Serversteuerelemente sein (z. B. Steuerelemente, die von WebControl oder vorhandenen ASP.NET Serversteuerelementen erben), damit Sie die erforderlichen Member hinzufügen können. Die Steuerelemente müssten auch die unten angegebenen Anforderungen erfüllen.

Jede Art von Verbindungsszenario zwischen zwei Steuerelementen muss die folgenden Anforderungen erfüllen, um eine Verbindung herstellen zu können:

  • Jedes Steuerelement befindet sich in einer WebPartZoneBase Zone (es muss nicht dieselbe Zone sein).

  • Wie im Webparts-Steuerelementsatz implementiert, implementiert das Anbietersteuerelement in einer Verbindung eine Schnittstelle als öffentliche Methode, die als Rückruf für den Anbieter dient, und verfügt über ein ConnectionProvider Metadatenattribut für die Methode, um es als Anbieterverbindungspunkt zu identifizieren. Da die Methode, die GetProviderConnectionPoints Anbieterverbindungspunkte abruft, virtuell ist, muss ein abgeleitetes WebPartManager Steuerelement nicht unbedingt dasselbe Metadatenattribute verwenden.

  • Wie im Webparts-Steuerelementsatz implementiert, verfügt das Consumersteuerelement in einer Verbindung auch über eine spezielle Methode, die es ermöglicht, einen Verweis auf die Schnittstelle abzurufen, die in der Rückrufmethode des Anbieters verfügbar gemacht wird, und der Consumer verfügt über ein ConnectionConsumer Metadatenattribut für die Methode, um es als Consumerverbindungspunkt zu identifizieren. Da die Methode, die GetConsumerConnectionPoints Consumerverbindungspunkte abruft, virtuell ist, muss ein abgeleitetes WebPartManager Steuerelement nicht unbedingt dasselbe Metadatenattribute verwenden.

  • Die Rückrufmethoden müssen entweder kompatibel sein, da der Consumer den Schnittstellentyp verwenden kann, der in der Rückrufmethode des Anbieters angegeben ist (d. h. der Consumer und der Anbieter können Daten direkt freigeben), oder der Entwickler muss ein WebPartTransformer -Objekt verwenden, um die Daten vom Anbieter in eine Form zu transformieren, die der Consumer verwenden kann.

    Wichtig

    Wenn Sie keinen Transformator benötigen, verwenden Sie die ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) Methodenüberladung. Wenn Sie einen Transformator benötigen, verwenden Sie die ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) Methodenüberladung.

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Erstellt nur mithilfe der Verweise auf die Steuerelemente und ihre angegebenen WebPart-Objekte eine Verbindung zwischen zwei GenericWebPart-Steuerelementen oder ConnectionPoint-Steuerelementen.

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

Parameter

provider
WebPart

Ein WebPart-Steuerelement, das die Funktion erfüllt, Daten für ein anderes, mit ihm verbundenes Steuerelement bereitzustellen.

providerConnectionPoint
ProviderConnectionPoint

Eine Methode, die als Rückrufmethode für die Verbindung fungiert. Entsprechend der Implementierung im Webparts-Steuerelementsatz ist dies eine öffentliche Methode in provider, die mit einem ConnectionProvider-Metadatenattribut gekennzeichnet ist.

consumer
WebPart

Ein WebPart-Steuerelement, das die Funktion erfüllt, Daten von provider zu empfangen und dann zu verarbeiten oder anzuzeigen.

consumerConnectionPoint
ConsumerConnectionPoint

Eine Methode, die eine Verbindung mit providerConnectionPoint herstellt, um die Daten für die Verbindung zu empfangen. Entsprechend der Implementierung im Webparts-Steuerelementsatz ist dies eine öffentliche Methode in consumer, die mit einem ConnectionConsumer-Metadatenattribut gekennzeichnet ist.

Gibt zurück

Eine WebPartConnection mit den Informationen zum Anbieter und Consumer, die für eine Verbindung benötigt werden.

Ausnahmen

Die Auflistung der dynamischen Auflistungen des WebPartManager-Steuerelements ist schreibgeschützt.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Diese Methode zum programmgesteuerten Erstellen einer Verbindung verwendet wird. Den vollständigen Code, der zum Ausführen des Beispiels erforderlich ist, finden Sie im Abschnitt Beispiel der WebPartManager Klassenübersicht. In diesem Beispiel benötigen Sie den Quellcode für das Benutzersteuerelement, mit dem Sie die Anzeigemodi auf der Seite ändern können, und den Quellcode für die beiden benutzerdefinierten WebPart Steuerelemente.

Der Code für die Webseite, die die beiden Steuerelemente hostet, folgt. Die Seite verwendet Register Direktiven oben, um das Benutzersteuerelement und die benutzerdefinierten Steuerelemente zu deklarieren. Anschließend wird in einem <asp:webpartzone> -Element deklarativ auf die benutzerdefinierten Steuerelemente verwiesen. Der Code, der die Button1_Click -Methode behandelt, erstellt mithilfe der -Methode eine Verbindung zwischen den Steuerelementen ConnectWebParts .

<%@ 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>

Nachdem Sie die Seite in einem Browser geladen haben, klicken Sie auf die Schaltfläche WebPart-Steuerelemente verbinden , um die Verbindung herzustellen. Sie können dann einige Daten in das Textfeld eingeben und auf die Schaltfläche 5-stellige Postleitzahl eingeben klicken, um zu zeigen, dass die Steuerelemente verbunden sind und dass die im ersten Steuerelement eingegebenen Daten im zweiten aktualisiert werden.

Hinweise

Diese Überladung wird verwendet, um Steuerelemente zu verbinden, wenn deren Verbindungspunkte so kompatibel sind, dass sie ohne Verwendung eines -Objekts eine WebPartTransformer Verbindung herstellen können. Wenn diese Überladung der -Methode aufgerufen wird, übergibt sie einfach den Aufruf an die andere überladene Version der -Methode und übergibt null den Parameter, der ein WebPartTransformer -Objekt erfordert.

Wenn Sie versuchen, zwei Steuerelemente programmgesteuert zu verbinden, können Sie die CanConnectWebParts -Methode in einer bedingten Überprüfung verwenden, um zu bestimmen, ob die Steuerelemente direkt verbunden werden können.

Weitere Informationen

Gilt für:

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

Erstellt mithilfe der Verweise auf die Steuerelemente, ihre angegebenen WebPart-Objekte und ein GenericWebPart-Objekt eine Verbindung zwischen zwei ConnectionPoint-Steuerelementen oder WebPartTransformer-Steuerelementen.

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

Parameter

provider
WebPart

Ein WebPart, der die Funktion erfüllt, Daten für ein anderes, mit ihm verbundenes Steuerelement bereitzustellen.

providerConnectionPoint
ProviderConnectionPoint

Eine öffentliche Methode in provider, die mit einem ConnectionProvider-Metadatenattribut gekennzeichnet ist und als Rückrufmethode für die Verbindung fungiert.

consumer
WebPart

Ein WebPart, der die Funktion erfüllt, Daten von provider oder transformer zu empfangen und dann zu verarbeiten oder anzuzeigen.

consumerConnectionPoint
ConsumerConnectionPoint

Eine öffentliche Methode in consumer, die mit einem ConnectionConsumer-Metadatenattribut gekennzeichnet ist und eine Verbindung mit providerConnectionPoint herstellt, um die Daten für die Verbindung zu empfangen.

transformer
WebPartTransformer

Ein WebPartTransformer, der eine Verbindung zwischen zwei Steuerelementen ermöglicht, indem er die Daten von provider in ein Format konvertiert, das von consumer verarbeitet werden kann.

Gibt zurück

Eine WebPartConnection, die die Informationen zum Anbieter, Consumer und Transformator enthält, die für eine Verbindung benötigt werden.

Ausnahmen

Verbindungen wurden bereits in PreRender aktiviert.

Hinweise

Diese Überladung wird verwendet, um Steuerelemente zu verbinden, wenn deren Verbindungspunkte nicht kompatibel sind. Die Inkompatibilität tritt auf, wenn consumer eine andere Schnittstelle als provider als ihr Verbindungspunkt implementiert wird. Der Transformator konvertiert die Daten in einen Typ, der von consumerverstanden werden kann.

Weitere Informationen

Gilt für: