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

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

provider
WebPart

Element WebPart , który ma rolę wyposażenia danych do innej połączonej kontroli.

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

Zobacz też

Dotyczy