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ł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
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ę.