Udostępnij za pośrednictwem


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ładników 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

Element 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ładników Web Part.

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

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

  • Wyjaśnienie sposobu 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ć z 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ładników 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, <asp:webpartzone> który 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ływały StaticConnections właściwość. Należy pamiętać, że ConsumerConnectionPointCollection obiekt pobierany przy użyciu GetConsumerConnectionPoints metody jest następnie przekazywany do metody w CanConnectWebParts 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>

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

Po załadowaniu strony sieci Web w przeglądarce kliknij kontrolkę listy rozwijanej Tryb wyświetlania i wybierz pozycję Połącz , aby przełączyć stronę w tryb połączenia. Tryb łączenia używa elementu , <asp:connectionszone> aby umożliwić tworzenie połączeń między kontrolkami. W trybie połączenia kliknij strzałkę w dół na pasku tytułu kontrolki Kod pocztowy , aby aktywować menu czasowników, a następnie kliknij przycisk Połącz. 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 utworzenie za każdym razem, gdy strona zostanie załadowana.

Uwagi

Połączenie składników 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 konsumenta jego punkty połączenia są ConsumerConnectionPoint obiektami. Pobieranie punktów połączenia użytkownika jest niezbędnym krokiem podczas tworzenia połączenia składników Web Part.

Użytkownik musi zawsze mieć co najmniej jeden punkt połączenia, aby mógł nawiązać połączenie. Metoda GetConsumerConnectionPoints sprawdza kontrolkę konsumenta 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ż