WebPartManager.GetConsumerConnectionPoints(WebPart) Metod

Definition

Hämtar samlingen med ConsumerConnectionPoint objekt som kan fungera som anslutningspunkter från en serverkontroll som fungerar som konsument i en webbdelsanslutning.

public:
 virtual System::Web::UI::WebControls::WebParts::ConsumerConnectionPointCollection ^ GetConsumerConnectionPoints(System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
public virtual System.Web.UI.WebControls.WebParts.ConsumerConnectionPointCollection GetConsumerConnectionPoints(System.Web.UI.WebControls.WebParts.WebPart webPart);
abstract member GetConsumerConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ConsumerConnectionPointCollection
override this.GetConsumerConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ConsumerConnectionPointCollection
Public Overridable Function GetConsumerConnectionPoints (webPart As WebPart) As ConsumerConnectionPointCollection

Parametrar

webPart
WebPart

En serverkontroll som fungerar som konsument i en anslutning.

Returer

En ConsumerConnectionPointCollection som innehåller alla anslutningspunkter i konsumenten.

Undantag

webPart är null.

Exempel

I följande kodexempel visas hur du använder GetConsumerConnectionPoints metoden.

Kodexemplet har fyra delar:

  • En användarkontroll som gör att du kan ändra visningslägen på en webbdelssida.

  • En webbsida som innehåller två anpassade WebPart kontroller som kan anslutas och ett <asp:webpartmanager> element.

  • En källkodsfil som innehåller två anpassade WebPart kontroller och ett anpassat gränssnitt.

  • En förklaring av hur exemplet fungerar i en webbläsare.

Den första delen av kodexemplet är användarkontrollen för att ändra visningslägen. Du kan hämta källkoden för användarkontrollen från avsnittet Exempel i klassöversikten WebPartManager . Mer information om visningslägen och hur användarkontrollen fungerar finns i avsnittet Genomgång: Ändra visningslägen på en webbsida.

Den deklarativa markeringen för webbsidan innehåller Register direktiv för både användarkontrollen och de anpassade kontrollerna. Det finns ett <asp:webpartmanager> element, ett <asp:webpartzone> element som ska innehålla de anpassade kontrollerna och ett <asp:connectionszone> element. Observera att koden i Page_Load metoden kontrollerar om det redan finns en anslutning och, om inte, definierar en provider, en konsument och deras respektive anslutningspunkter och lägger sedan till en ny anslutning till den uppsättning statiska anslutningar som refereras av StaticConnections egenskapen. Observera att objektet ConsumerConnectionPointCollection som hämtas med hjälp GetConsumerConnectionPoints av metoden sedan skickas till CanConnectWebParts metoden för att avgöra om en anslutning mellan de två kontrollerna kan skapas.

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

Den tredje delen av exemplet är källkoden för kontrollerna. Du kan hämta den här koden och instruktioner för att kompilera den från avsnittet Exempel i klassöversikten WebPartManager .

När du har läst in webbsidan i en webbläsare klickar du på listrutan Visningsläge och väljer Anslut för att växla sidan till anslutningsläge. I anslutningsläget används elementet <asp:connectionszone> för att du ska kunna skapa anslutningar mellan kontroller. I anslutningsläge klickar du på nedåtpilen i namnlisten på postnummerkontrollen för att aktivera verbmenyn och klickar sedan på Anslut. När anslutningsanvändargränssnittet (UI) visas bör du observera att en anslutning redan har skapats av koden i Page_Load metoden. Om du återgår till den här sidan i en senare webbläsarsession kommer den här statiska anslutningen redan att upprättas och behöver inte återskapas varje gång sidan läses in.

Kommentarer

En webbdelsanslutning omfattar alltid exakt två kontroller, den ena fungerar som dataleverantör, den andra fungerar som konsument av data. Varje kontroll måste ha en eller flera metoder som definieras som anslutningspunkter. När det gäller en konsumentkontroll är ConsumerConnectionPoint dess anslutningspunkter objekt. Att hämta konsumentanslutningspunkterna är ett nödvändigt steg för att skapa en webbdelsanslutning.

En konsument måste alltid ha minst en anslutningspunkt för att kunna upprätta en anslutning. Metoden GetConsumerConnectionPoints kontrollerar en konsumentkontroll och hämtar en samling av alla dess anslutningspunkter. Om en WebPart kontroll inte har några anslutningspunkter returnerar metoden en tom samling.

Gäller för

Se även