WebPartManager.ConnectWebParts 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.
Tworzy połączenie między dwoma WebPart kontrolkami (lub innymi kontrolkami serwera, które mogą tworzyć połączenia), które znajdują się w WebPartZoneBase strefie.
Przeciążenia
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) |
Tworzy połączenie między dwoma WebPart kontrolkami lub GenericWebPart przy użyciu tylko odwołań do kontrolek i ich określonych ConnectionPoint obiektów. |
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) |
Tworzy połączenie między dwoma WebPart kontrolkami lub GenericWebPart przy użyciu odwołań do kontrolek, ich określonych ConnectionPoint obiektów i WebPartTransformer obiektu. |
Uwagi
Metoda ConnectWebParts tworzy połączenie między dowolnymi dwoma WebPart kontrolkami, które można połączyć. Przed wywołaniem tej metody w celu utworzenia połączenia można również wywołać CanConnectWebParts metodę w kontrolce warunkowej, aby upewnić się, że kontrolki spełniają wymagania dotyczące tworzenia połączenia.
Uwaga
Istnieje również możliwość utworzenia połączenia między dwoma kontrolkami serwera, które nie WebPart są kontrolkami. Ogólnie rzecz biorąc, te dwie kontrolki muszą być niestandardowymi kontrolkami serwera (na przykład kontrolkami dziedziczą z WebControl lub istniejącymi kontrolkami serwera ASP.NET), aby można było dodać wymagane elementy członkowskie. Kontrole musiałyby również spełniać wymagania określone poniżej.
Każdy typ scenariusza połączenia między dwiema kontrolkami musi spełniać następujące wymagania, aby można było nawiązać połączenie:
Każda kontrolka znajduje się w strefie (nie musi być tą samą strefą WebPartZoneBase ).
Jak zaimplementowano w zestawie kontrolek składników Web Part, kontrolka dostawcy w połączeniu implementuje interfejs jako metodę publiczną, która służy jako wywołanie zwrotne do dostawcy i ma
ConnectionProvider
atrybut metadanych w metodzie w celu zidentyfikowania go jako punktu połączenia dostawcy. GetProviderConnectionPoints Ponieważ metoda pobierająca punkty połączenia dostawcy jest wirtualna, pochodna WebPartManager kontrolka nie musi używać tego samego atrybutu metadanych.Jak zaimplementowano w zestawie kontrolek składników Web Part, kontrolka konsumenta w połączeniu ma również specjalną metodę, która umożliwia uzyskanie odwołania do interfejsu uwidocznionego w metodzie wywołania zwrotnego dostawcy, a użytkownik ma
ConnectionConsumer
atrybut metadanych w metodzie , aby zidentyfikować go jako punkt połączenia użytkownika. GetConsumerConnectionPoints Ponieważ metoda pobierająca punkty połączenia użytkownika jest wirtualna, kontrolka pochodna WebPartManager nie musi używać tego samego atrybutu metadanych.Metody wywołania zwrotnego muszą być zgodne, w tym, że użytkownik może użyć typu interfejsu dostarczonego w metodzie wywołania zwrotnego dostawcy (co oznacza, że konsument i dostawca mogą udostępniać dane bezpośrednio) lub deweloper musi użyć obiektu, aby przekształcić dane od dostawcy w formę, której może użyć WebPartTransformer odbiorca.
Ważne
Jeśli nie potrzebujesz transformatora, użyj ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) przeciążenia metody. Jeśli potrzebujesz transformatora, użyj ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) przeciążenia metody.
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)
Tworzy połączenie między dwoma WebPart kontrolkami lub GenericWebPart przy użyciu tylko odwołań do kontrolek i ich określonych ConnectionPoint obiektów.
public:
System::Web::UI::WebControls::WebParts::WebPartConnection ^ ConnectWebParts(System::Web::UI::WebControls::WebParts::WebPart ^ provider, System::Web::UI::WebControls::WebParts::ProviderConnectionPoint ^ providerConnectionPoint, System::Web::UI::WebControls::WebParts::WebPart ^ consumer, System::Web::UI::WebControls::WebParts::ConsumerConnectionPoint ^ consumerConnectionPoint);
public System.Web.UI.WebControls.WebParts.WebPartConnection ConnectWebParts (System.Web.UI.WebControls.WebParts.WebPart provider, System.Web.UI.WebControls.WebParts.ProviderConnectionPoint providerConnectionPoint, System.Web.UI.WebControls.WebParts.WebPart consumer, System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint consumerConnectionPoint);
member this.ConnectWebParts : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ProviderConnectionPoint * System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint -> System.Web.UI.WebControls.WebParts.WebPartConnection
Public Function ConnectWebParts (provider As WebPart, providerConnectionPoint As ProviderConnectionPoint, consumer As WebPart, consumerConnectionPoint As ConsumerConnectionPoint) As WebPartConnection
Parametry
- provider
- WebPart
Kontrolka WebPart , która ma rolę dostarczenia danych do innej połączonej kontrolki.
- providerConnectionPoint
- ProviderConnectionPoint
Metoda, która służy jako metoda wywołania zwrotnego dla połączenia. Zgodnie z implementacją w zestawie kontrolek składników Web Part jest to publiczna metoda provider
oznaczona atrybutem ConnectionProvider
metadanych.
- consumer
- WebPart
Kontrolka WebPart , która ma rolę odbierania danych z provider
programu , a następnie przetwarzania lub wyświetlania.
- consumerConnectionPoint
- ConsumerConnectionPoint
Metoda łącząca się z usługą providerConnectionPoint
w celu odbierania danych dla połączenia. Zgodnie z implementacją w zestawie kontrolek składników Web Part jest to publiczna metoda consumer
oznaczona atrybutem ConnectionConsumer
metadanych.
Zwraca
Element WebPartConnection zawierający różne informacje o dostawcy i odbiorcy potrzebne do nawiązania połączenia.
Wyjątki
Kolekcja WebPartManager kolekcji dynamicznych kontrolki jest tylko do odczytu.
Przykłady
W poniższym przykładzie kodu pokazano, jak za pomocą tej metody programowo utworzyć połączenie. Aby zapoznać się z pełnym kodem wymaganym do uruchomienia przykładu, zobacz sekcję Przykład w przeglądzie WebPartManager klasy. W tym przykładzie potrzebny będzie kod źródłowy kontrolki użytkownika, który umożliwia zmianę trybów wyświetlania na stronie oraz kod źródłowy dla dwóch kontrolek niestandardowych WebPart .
Poniższy kod strony sieci Web hostujący dwie kontrolki. Strona używa Register
dyrektyw u góry, aby zadeklarować kontrolkę użytkownika i kontrolki niestandardowe. Kontrolki niestandardowe są następnie odwołyywające się deklaratywnie w elemencie <asp:webpartzone>
. Kod, który obsługuje Button1_Click
metodę, tworzy połączenie między kontrolkami przy użyciu ConnectWebParts metody .
<%@ 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 Button1_Click(object sender, EventArgs e)
{
ProviderConnectionPoint provPoint =
mgr.GetProviderConnectionPoints(zip1)["ZipCodeProvider"];
ConsumerConnectionPoint connPoint =
mgr.GetConsumerConnectionPoints(weather1)["ZipCodeConsumer"];
WebPartConnection conn1 = mgr.ConnectWebParts(zip1, provPoint,
weather1, connPoint);
}
protected void mgr_DisplayModeChanged(object sender,
WebPartDisplayModeEventArgs e)
{
if (mgr.DisplayMode == WebPartManager.ConnectDisplayMode)
Button1.Visible = true;
else
Button1.Visible = false;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr" runat="server"
OnDisplayModeChanged="mgr_DisplayModeChanged">
</asp:WebPartManager>
<uc1:DisplayModeMenuCS ID="menu1" runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<aspSample:ZipCodeWebPart ID="zip1" runat="server"
Title="Zip Code Provider" />
<aspSample:WeatherWebPart ID="weather1" runat="server"
Title="Zip Code Consumer" />
</ZoneTemplate>
</asp:WebPartZone>
<asp:ConnectionsZone ID="ConnectionsZone1" runat="server">
</asp:ConnectionsZone>
<asp:Button ID="Button1" runat="server"
Text="Connect WebPart Controls"
OnClick="Button1_Click"
Visible="false" />
</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 Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
Dim provPoint As ProviderConnectionPoint = _
mgr.GetProviderConnectionPoints(zip1)("ZipCodeProvider")
Dim connPoint As ConsumerConnectionPoint = _
mgr.GetConsumerConnectionPoints(weather1)("ZipCodeConsumer")
mgr.ConnectWebParts(zip1, provPoint, weather1, connPoint)
End Sub
Protected Sub mgr_DisplayModeChanged (ByVal sender as Object, _
ByVal e as WebPartDisplayModeEventArgs)
If mgr.DisplayMode is WebPartManager.ConnectDisplayMode Then
Button1.Visible = True
Else
Button1.Visible = False
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr" runat="server"
OnDisplayModeChanged="mgr_DisplayModeChanged">
</asp:WebPartManager>
<uc1:DisplayModeMenuVB ID="menu1" runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<aspSample:ZipCodeWebPart ID="zip1" runat="server"
Title="Zip Code Provider" />
<aspSample:WeatherWebPart ID="weather1" runat="server"
Title="Zip Code Consumer" />
</ZoneTemplate>
</asp:WebPartZone>
<asp:ConnectionsZone ID="ConnectionsZone1" runat="server">
</asp:ConnectionsZone>
<asp:Button ID="Button1" runat="server"
Text="Connect WebPart Controls"
OnClick="Button1_Click"
Visible="false" />
</div>
</form>
</body>
</html>
Po załadowaniu strony w przeglądarce kliknij przycisk Połącz kontrolki składników Web Part , aby utworzyć połączenie. Następnie możesz wprowadzić dane w polu tekstowym, a następnie kliknąć przycisk Wprowadź 5-cyfrowy kod pocztowy , aby pokazać, że kontrolki są połączone, a dane wprowadzone w pierwszej kontrolce zostaną zaktualizowane w drugim.
Uwagi
To przeciążenie służy do łączenia kontrolek, gdy ich punkty połączenia są wystarczająco zgodne, aby można było nawiązać połączenie bez użycia WebPartTransformer obiektu. Gdy to przeciążenie metody jest wywoływane, po prostu przekazuje wywołanie do innej przeciążonej wersji metody i przekazuje null
parametr, który wymaga WebPartTransformer obiektu.
Podczas próby programowego połączenia dwóch kontrolek można użyć CanConnectWebParts metody w kontrolce warunkowej, aby określić, czy kontrolki mogą być połączone bezpośrednio.
Zobacz też
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- kontrolki składników Web Part ASP.NET
Dotyczy
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer)
Tworzy połączenie między dwoma WebPart kontrolkami lub GenericWebPart przy użyciu odwołań do kontrolek, ich określonych ConnectionPoint obiektów i WebPartTransformer obiektu.
public:
virtual System::Web::UI::WebControls::WebParts::WebPartConnection ^ ConnectWebParts(System::Web::UI::WebControls::WebParts::WebPart ^ provider, System::Web::UI::WebControls::WebParts::ProviderConnectionPoint ^ providerConnectionPoint, System::Web::UI::WebControls::WebParts::WebPart ^ consumer, System::Web::UI::WebControls::WebParts::ConsumerConnectionPoint ^ consumerConnectionPoint, System::Web::UI::WebControls::WebParts::WebPartTransformer ^ transformer);
public virtual System.Web.UI.WebControls.WebParts.WebPartConnection ConnectWebParts (System.Web.UI.WebControls.WebParts.WebPart provider, System.Web.UI.WebControls.WebParts.ProviderConnectionPoint providerConnectionPoint, System.Web.UI.WebControls.WebParts.WebPart consumer, System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint consumerConnectionPoint, System.Web.UI.WebControls.WebParts.WebPartTransformer transformer);
abstract member ConnectWebParts : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ProviderConnectionPoint * System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint * System.Web.UI.WebControls.WebParts.WebPartTransformer -> System.Web.UI.WebControls.WebParts.WebPartConnection
override this.ConnectWebParts : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ProviderConnectionPoint * System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint * System.Web.UI.WebControls.WebParts.WebPartTransformer -> System.Web.UI.WebControls.WebParts.WebPartConnection
Public Overridable Function ConnectWebParts (provider As WebPart, providerConnectionPoint As ProviderConnectionPoint, consumer As WebPart, consumerConnectionPoint As ConsumerConnectionPoint, transformer As WebPartTransformer) As WebPartConnection
Parametry
- providerConnectionPoint
- ProviderConnectionPoint
Publiczna metoda w systemie provider
jest oznaczona atrybutem ConnectionProvider
metadanych i służy jako metoda wywołania zwrotnego dla połączenia.
- consumer
- WebPart
Element WebPart , który ma rolę odbierania danych z provider
lub transformer
, a następnie przetwarzania lub wyświetlania.
- consumerConnectionPoint
- ConsumerConnectionPoint
Publiczna metoda w consumer
programie oznaczona atrybutem ConnectionConsumer
metadanych i nawiązuje połączenie z elementem w providerConnectionPoint
celu odbierania danych dla połączenia.
- transformer
- WebPartTransformer
Element WebPartTransformer , który umożliwia połączenie między dwiema kontrolkami przez przekonwertowanie danych z provider
na format, który consumer
może przetwarzać.
Zwraca
Element WebPartConnection zawierający informacje o dostawcy, odbiorcy i transformatorze wymaganym do połączenia.
Wyjątki
Połączenia zostały już aktywowane w programie PreRender.
Uwagi
To przeciążenie służy do łączenia kontrolek, gdy ich punkty połączenia są niezgodne. Niezgodność występuje, gdy consumer
implementuje inny interfejs niż provider
punkt połączenia. Funkcja przekształcania konwertuje dane na typ, który może być zrozumiały przez consumer
element .
Zobacz też
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- WebPartTransformer
- kontrolki składników Web Part ASP.NET