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 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, 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, dwie kontrolki musiałyby 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 dwoma kontrolkami musi spełniać następujące wymagania, aby móc nawiązać połączenie:
Każda kontrolka znajduje się w WebPartZoneBase strefie (nie musi być tą samą strefą).
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, aby zidentyfikować go jako punkt 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, pochodna WebPartManager kontrolka 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ć WebPartTransformer obiektu, aby przekształcić dane od dostawcy w formularzu, którego użytkownik może użyć.
Ważne
Gdy nie potrzebujesz transformatora, użyj ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) przeciążenia metody. Gdy 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 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ę wyposażenia 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 provider
zestawie kontrolek składników Web Part jest to publiczna metoda 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 consumer
zestawie kontrolek składników Web Part jest to publiczna metoda oznaczona atrybutem ConnectionConsumer
metadanych.
Zwraca
Element WebPartConnection zawierający różne informacje o dostawcy i odbiorcy wymagane do połączenia.
Wyjątki
Kolekcja WebPartManager kolekcji dynamicznych kontrolki jest tylko do odczytu.
Przykłady
Poniższy przykład kodu pokazuje, jak za pomocą tej metody programowo utworzyć połączenie. Aby zapoznać się z pełnym kodem wymaganym do uruchomienia przykładu, zobacz sekcję Przykładowe WebPartManager omówienie 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 .
Kod strony sieci Web hostujący dwie kontrolki następuje. Strona używa Register
dyrektyw u góry, aby zadeklarować kontrolkę użytkownika i kontrolki niestandardowe. Kontrolki niestandardowe są następnie odwołyywane deklaratywnie w elemencie <asp:webpartzone>
. Kod obsługujący 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, że mogą łączyć się bez użycia WebPartTransformer obiektu. Po wywołaniu tego przeciążenia metody 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 można połączyć 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, 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 oznaczona provider
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
programu lub transformer
, a następnie przetwarzania lub wyświetlania.
- consumerConnectionPoint
- ConsumerConnectionPoint
Publiczna metoda oznaczona consumer
atrybutem ConnectionConsumer
metadanych i łączy się z elementem providerConnectionPoint
w celu odbierania danych dla połączenia.
- transformer
- WebPartTransformer
Element WebPartTransformer , który umożliwia połączenie między dwoma kontrolkami, konwertując dane 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. Transformator konwertuje dane na typ, który można zrozumieć przez consumer
element .
Zobacz też
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- WebPartTransformer
- kontrolki składników Web Part ASP.NET
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla