WebPartManager.GetConsumerConnectionPoints(WebPart) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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ę.