WebPartManager.GetProviderConnectionPoints(WebPart) Methode

Definitie

Hiermee haalt u de verzameling ProviderConnectionPoint objecten op die kunnen fungeren als verbindingspunten van een serverbesturing die fungeert als provider binnen een verbinding met webonderdelen.

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

Parameters

webPart
WebPart

Een serverbesturing die fungeert als een provider in een verbinding.

Retouren

Een ProviderConnectionPointCollection met alle verbindingspunten in de provider.

Uitzonderingen

webPart is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de GetProviderConnectionPoints methode gebruikt.

Het voorbeeld heeft vier delen:

  • Een gebruikersbeheer waarmee u weergavemodi op een pagina met webonderdelen kunt wijzigen.

  • Een webpagina met twee aangepaste WebPart besturingselementen die kunnen worden verbonden en een <asp:webpartmanager> element.

  • Een broncodebestand met twee aangepaste WebPart besturingselementen en een aangepaste interface.

  • Een uitleg van hoe het voorbeeld werkt in een browser.

Het eerste deel van het codevoorbeeld is het gebruikersbeheer voor het wijzigen van weergavemodi. U kunt de broncode voor het gebruikersbeheer verkrijgen in de sectie Voorbeeld van het WebPartManager klassenoverzicht. Zie Walkthrough: Weergavemodi wijzigen op een pagina met webonderdelen voor meer informatie over weergavemodi en hoe het gebruikersbeheer werkt.

De declaratieve markering voor de webpagina bevat Register instructies voor zowel het gebruikersbesturingselement als de aangepaste besturingselementen. Er is een <asp:webpartmanager> element, een <asp:webpartzone> element dat de aangepaste besturingselementen en een <asp:connectionszone> element bevat. U ziet dat in de Page_Load methode de code controleert of er al een verbinding bestaat en, als dat niet het geval is, een provider, een consument en de respectieve verbindingspunten definieert en vervolgens een nieuwe verbinding toevoegt aan de set statische verbindingen waarnaar wordt verwezen door de StaticConnections eigenschap. ProviderConnectionPointCollection Het object dat wordt opgehaald met behulp van de GetProviderConnectionPoints methode, wordt vervolgens doorgegeven aan de CanConnectWebParts methode om te bepalen of er een verbinding tussen de twee besturingselementen kan worden gemaakt.

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

Het derde deel van het voorbeeld is de broncode voor de besturingselementen. U kunt deze code en instructies voor het compileren ervan verkrijgen in de sectie Voorbeeld van het WebPartManager klassenoverzicht.

Nadat u de webpagina in een browser hebt geladen, klikt u op het besturingselement voor de vervolgkeuzelijst Weergavemodus en selecteert u Verbinding maken om de pagina over te schakelen naar de verbindingsmodus. De verbindingsmodus maakt gebruik van het <asp:connectionszone> element om verbindingen tussen besturingselementen te maken. Klik in de verbindingsmodus op de pijl-omlaag in de titelbalk van het besturingselement Postcode om het menu werkwoorden te activeren en klik vervolgens op Verbinden. Nadat de gebruikersinterface van de verbinding (UI) wordt weergegeven, ziet u dat er al een verbinding is gemaakt door de code in de Page_Load methode. Als u in een latere browsersessie terugkeert naar deze pagina, wordt deze statische verbinding al tot stand gebracht en hoeft deze niet telkens opnieuw te worden gemaakt wanneer de pagina wordt geladen.

Opmerkingen

Een verbinding met webonderdelen omvat altijd precies twee besturingselementen, een die fungeert als de gegevensprovider, de andere fungeert als de consument van gegevens. Elk besturingselement moet een of meer methoden hebben die zijn gedefinieerd als verbindingspunten. In het geval van een providerbeheer zijn ProviderConnectionPoint de verbindingspunten objecten.

Een provider moet altijd ten minste één verbindingspunt hebben om een verbinding tot stand te kunnen brengen. De GetProviderConnectionPoints methode controleert een providercontrole en haalt een verzameling van alle bijbehorende verbindingspunten op. Het ophalen van de verbindingspunten van de provider is een noodzakelijke stap bij het vormen van een verbinding met webonderdelen.

Van toepassing op

Zie ook