WebPartManager.GetProviderConnectionPoints(WebPart) Methode

Definition

Ruft eine Auflistung von ProviderConnectionPoint-Objekten ab, die als Verbindungspunkte von einem Serversteuerelement verwendet werden können, das als Anbieter in einer Webparts-Verbindung fungiert.

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

Parameter

webPart
WebPart

Ein Serversteuerelement, das als Anbieter in einer Verbindung fungiert.

Gibt zurück

ProviderConnectionPointCollection

Eine ProviderConnectionPointCollection, die alle Verbindungspunkte im Anbieter enthält.

Ausnahmen

webPart ist null.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie die GetProviderConnectionPoints-Methode verwenden.

Das Beispiel weist vier Teile auf:

  • Ein Benutzersteuerelement, mit dem Sie Anzeigemodi auf einer Webparts Seite ändern können.

  • Eine Webseite mit zwei benutzerdefinierten WebPart Steuerelementen, die verbunden werden können, und ein <asp:webpartmanager> Element.

  • Eine Quellcodedatei mit zwei benutzerdefinierten Steuerelementen und einer benutzerdefinierten WebPart Schnittstelle.

  • Eine Erläuterung der Funktionsweise des Beispiels in einem Browser.

Der erste Teil des Codebeispiels ist das Benutzersteuerelement zum Ändern von Anzeigemodi. Sie können den Quellcode für das Benutzersteuerelement aus dem Abschnitt "Beispiel" der WebPartManager Klassenübersicht abrufen. Weitere Informationen zu Anzeigemodi und der Funktionsweise des Benutzersteuerelements finden Sie unter Exemplarische Vorgehensweise: Ändern von Anzeigemodi auf einer Webparts Seite.

Das deklarative Markup für die Webseite enthält Register Direktiven sowohl für das Benutzersteuerelement als auch für die benutzerdefinierten Steuerelemente. Es gibt ein Element, ein <asp:webpartmanager> <asp:webpartzone> Element, das die benutzerdefinierten Steuerelemente und ein <asp:connectionszone> Element enthält. Beachten Sie, dass der Code in der Page_Load Methode überprüft, ob eine Verbindung bereits vorhanden ist und, falls nicht, einen Anbieter, einen Consumer und seine jeweiligen Verbindungspunkte definiert und dann eine neue Verbindung zur Gruppe statischer Verbindungen hinzufügt, auf die von der StaticConnections Eigenschaft verwiesen wird. Beachten Sie, dass das ProviderConnectionPointCollection mithilfe der Methode abgerufene Objekt dann an die GetProviderConnectionPoints CanConnectWebParts Methode übergeben wird, um zu bestimmen, ob eine Verbindung zwischen den beiden Steuerelementen erstellt werden kann.

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

Der dritte Teil des Beispiels ist der Quellcode für die Steuerelemente. Sie können diesen Code und Anweisungen zum Kompilieren dieses Codes aus dem Abschnitt "Beispiel" der WebPartManager Klassenübersicht abrufen.

Nachdem Sie die Webseite in einem Browser geladen haben, klicken Sie auf das Dropdownlistensteuerelement für den Anzeigemodus, und wählen Sie Verbinden aus, um die Seite zum Verbindungsmodus zu wechseln. Verbinden Modus verwendet das <asp:connectionszone> Element, damit Sie Verbindungen zwischen Steuerelementen erstellen können. Klicken Sie im Verbindungsmodus auf den Abwärtspfeil in der Titelleiste des POSTLEITZAHL-Steuerelements, um das Menü "Verben" zu aktivieren, und klicken Sie dann auf Verbinden. Nachdem die Verbindungsschnittstelle (UI) angezeigt wurde, beachten Sie, dass eine Verbindung bereits vom Code erstellt wurde, der in der Page_Load Methode enthalten ist. Wenn Sie zu dieser Seite in einer späteren Browsersitzung zurückkehren, wird diese statische Verbindung bereits eingerichtet und muss nicht jedes Mal neu erstellt werden, wenn die Seite geladen wird.

Hinweise

Eine Webparts Verbindung umfasst immer genau zwei Steuerelemente, die als Datenanbieter fungieren, die andere als Verbraucher von Daten. Jedes Steuerelement muss über eine oder mehrere Methoden verfügen, die als Verbindungspunkte definiert sind. Bei einem Anbietersteuerelement sind ProviderConnectionPoint seine Verbindungspunkte Objekte.

Ein Anbieter muss immer über mindestens einen Verbindungspunkt verfügen, um eine Verbindung herzustellen. Die GetProviderConnectionPoints Methode überprüft ein Anbietersteuerelement und ruft eine Auflistung aller Verbindungspunkte ab. Das Abrufen der Anbieterverbindungspunkte ist ein notwendiger Schritt bei der Bildung einer Webparts Verbindung.

Gilt für

Siehe auch