Freigeben über


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

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 umfasst vier Teile:

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

  • Eine Webseite, die zwei benutzerdefinierte WebPart Steuerelemente enthält, die verbunden werden können, und ein <asp:webpartmanager> Element.

  • Eine Quellcodedatei, die zwei benutzerdefinierte WebPart Steuerelemente und eine benutzerdefinierte Schnittstelle enthält.

  • Eine Erklärung, wie das Beispiel in einem Browser funktioniert.

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

Das deklarative Markup für die Webseite enthält Register Anweisungen sowohl für das Benutzersteuerelement als auch für die benutzerdefinierten Steuerelemente. Es gibt ein <asp:webpartmanager> Element, ein <asp:webpartzone> Element, das die benutzerdefinierten Steuerelemente enthalten soll, und ein <asp:connectionszone> Element. 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 ihre jeweiligen Verbindungspunkte definiert und dann eine neue Verbindung zu den statischen Verbindungen hinzufügt, auf die von der StaticConnections -Eigenschaft verwiesen wird. Beachten Sie, dass das ProviderConnectionPointCollection Objekt, das mithilfe der GetProviderConnectionPoints -Methode abgerufen wird, dann an die 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 im Abschnitt Beispiel der WebPartManager Klassenübersicht abrufen.

Nachdem Sie die Webseite in einem Browser geladen haben, klicken Sie auf das Dropdown-Listensteuerelement Anzeigemodus , und wählen Sie Verbinden aus, um die Seite in den Verbindungsmodus zu wechseln. Im Verbindungsmodus wird das <asp:connectionszone> -Element verwendet, 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 Verbindungsbenutzerschnittstelle (Ui) angezeigt wurde, beachten Sie, dass bereits eine Verbindung durch den in der Page_Load -Methode enthaltenen Code erstellt wurde. Wenn Sie in einer späteren Browsersitzung zu dieser Seite zurückkehren, wird diese statische Verbindung bereits hergestellt und muss nicht jedes Mal neu erstellt werden, wenn die Seite geladen wird.

Hinweise

Eine Webpartsverbindung umfasst immer genau zwei Steuerelemente: Eines fungiert als Datenanbieter, das andere als Consumer von Daten. Jedes Steuerelement muss über eine oder mehrere Methoden verfügen, die als Verbindungspunkte definiert sind. Im Fall eines Anbietersteuerelements sind ProviderConnectionPoint seine Verbindungspunkte Objekte.

Ein Anbieter muss immer über mindestens einen Verbindungspunkt verfügen, um eine Verbindung herstellen zu können. Die GetProviderConnectionPoints -Methode überprüft ein Anbietersteuerelement und ruft eine Auflistung aller Verbindungspunkte ab. Das Abrufen der Anbieterverbindungspunkte ist ein notwendiger Schritt beim Herstellen einer Webpartverbindung.

Gilt für:

Weitere Informationen