Udostępnij za pośrednictwem


WebPartManager.ConnectWebParts Metoda

Definicja

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 providerprogramu , 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ż

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

provider
WebPart

Element WebPart , który ma rolę dostarczenia danych do innej połączonej kontrolki.

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 consumerelement .

Zobacz też

Dotyczy