WebPartManager.GetConsumerConnectionPoints(WebPart) Metoda

Definicja

Pobiera kolekcję ConsumerConnectionPoint obiektów, które mogą pełnić rolę punktów połączenia z kontrolki serwera działającej jako użytkownik w ramach połączenia składniki Web Part.

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

Parametry

webPart
WebPart

Kontrolka serwera działająca jako odbiorca w połączeniu.

Zwraca

ConsumerConnectionPointCollection

Obiekt ConsumerConnectionPointCollection zawierający wszystkie punkty połączenia w odbiorcy.

Wyjątki

webPart to null.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać GetConsumerConnectionPoints metody .

Przykładowy kod ma cztery części:

  • Kontrolka użytkownika, która umożliwia zmianę trybów wyświetlania na stronie składniki Web Part.

  • Strona sieci Web zawierająca dwie kontrolki niestandardowe WebPart , które można połączyć, i <asp:webpartmanager> element.

  • Plik kodu źródłowego zawierający dwie kontrolki niestandardowe WebPart i interfejs niestandardowy.

  • Wyjaśnienie działania przykładu w przeglądarce.

Pierwszą częścią przykładu kodu jest kontrolka użytkownika do zmieniania trybów wyświetlania. Kod źródłowy kontrolki użytkownika można uzyskać w sekcji Przykład w przeglądzie WebPartManager klasy. Aby uzyskać więcej informacji o trybach wyświetlania i sposobie działania kontrolki użytkownika, zobacz temat Przewodnik: zmienianie trybów wyświetlania na stronie składniki Web Part.

Deklaratywne znaczniki dla strony sieci Web zawierają Register dyrektywy zarówno dla kontrolki użytkownika, jak i kontrolek niestandardowych. <asp:webpartmanager> Istnieje element, element, który <asp:webpartzone> zawiera kontrolki niestandardowe i <asp:connectionszone> element. Zwróć uwagę, że w metodzie Page_Load kod sprawdza, czy połączenie już istnieje, a jeśli nie, definiuje dostawcę, konsumenta i odpowiednie punkty połączenia, a następnie dodaje nowe połączenie do zestawu połączeń statycznych przywoływanych przez StaticConnections właściwość. Należy pamiętać, że ConsumerConnectionPointCollection obiekt, który jest pobierany przy użyciu GetConsumerConnectionPoints metody, jest następnie przekazywany do CanConnectWebParts metody w celu ustalenia, czy można utworzyć połączenie między dwoma kontrolkami.

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

Trzecią częścią przykładu jest kod źródłowy kontrolek. Ten kod i instrukcje dotyczące kompilowania można uzyskać w sekcji Przykład w przeglądzie WebPartManager klasy.

Po załadowaniu strony sieci Web w przeglądarce kliknij kontrolkę listy rozwijanej Tryb wyświetlania i wybierz Połączenie, aby przełączyć stronę w tryb łączenia. Połączenie tryb używa <asp:connectionszone> elementu , aby umożliwić tworzenie połączeń między kontrolkami. W trybie łączenia kliknij strzałkę w dół na pasku tytułu kontrolki Kod pocztowy, aby aktywować menu czasowników, a następnie kliknij przycisk Połączenie. Po pojawieniu się interfejsu użytkownika połączenia zwróć uwagę, że połączenie zostało już utworzone przez kod zawarty w metodzie Page_Load . Jeśli wrócisz do tej strony w późniejszej sesji przeglądarki, to połączenie statyczne zostanie już nawiązane i nie będzie konieczne ponowne tworzenie za każdym razem, gdy strona zostanie załadowana.

Uwagi

Połączenie składniki Web Part zawsze obejmuje dokładnie dwie kontrolki, jedną działającą jako dostawca danych, drugą działającą jako odbiorca danych. Każda kontrolka musi mieć co najmniej jedną metodę zdefiniowaną jako punkty połączenia. W przypadku kontrolki odbiorcy punkty połączenia są ConsumerConnectionPoint obiektami. Pobieranie punktów połączenia klienta jest krokiem niezbędnym do utworzenia połączenia składniki Web Part.

Użytkownik musi zawsze mieć co najmniej jeden punkt połączenia, aby móc nawiązać połączenie. Metoda GetConsumerConnectionPoints sprawdza kontrolkę odbiorcy i pobiera kolekcję wszystkich punktów połączenia. Jeśli kontrolka WebPart nie ma punktów połączenia, metoda zwraca pustą kolekcję.

Dotyczy

Zobacz też