WebPartManager.ConnectWebParts Metoda

Definice

Vytvoří spojení mezi dvěma WebPart ovládacími prvky (nebo jinými ovládacími prvky serveru umožňujícími vytvářet připojení), které se nacházejí v WebPartZoneBase zóně.

Přetížení

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Vytvoří spojení mezi dvěma WebPart ovládacími prvky nebo GenericWebPart pomocí odkazů na ovládací prvky a jejich zadané ConnectionPoint objekty.

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer)

Vytvoří spojení mezi dvěma WebPart ovládacími prvky nebo GenericWebPart pomocí odkazů na ovládací prvky, jejich zadané ConnectionPoint objekty a WebPartTransformer objekt.

Poznámky

Metoda ConnectWebParts vytváří spojení mezi libovolnými dvěma WebPart ovládacími prvky, které lze připojit. Před voláním této metody k vytvoření připojení můžete také volat metodu CanConnectWebParts v podmíněné kontrole, abyste se ujistili, že ovládací prvky splňují požadavky pro vytvoření připojení.

Poznámka

Je také možné vytvořit připojení mezi dvěma serverovými ovládacími prvky, které nejsou WebPart ovládacími prvky. Obecně platí, že tyto dva ovládací prvky musí být vlastní serverové ovládací prvky (například ovládací prvky, které dědí z WebControl nebo existující ASP.NET ovládací prvky serveru), aby bylo možné přidat požadované členy. Ovládací prvky by také musely splňovat níže uvedené požadavky.

Jakýkoli typ scénáře připojení mezi dvěma ovládacími prvky musí splňovat následující požadavky, aby bylo možné se připojit:

  • Každý ovládací prvek se nachází v WebPartZoneBase zóně (nemusí to být stejná zóna).

  • Jak je implementováno v sadě ovládacích prvků webových částí, ovládací prvek zprostředkovatele v připojení implementuje rozhraní jako veřejnou metodu, která slouží jako zpětné volání zprostředkovatele, a má ConnectionProvider atribut metadat v metodě, který ji identifikuje jako spojovací bod zprostředkovatele. Vzhledem k GetProviderConnectionPoints tomu, že metoda, která načítá spojovací body zprostředkovatele, je virtuální, nemusí odvozený WebPartManager ovládací prvek nutně používat stejný atribut metadat.

  • Jak je implementováno v sadě ovládacích prvků webových částí, má ovládací prvek příjemce v připojení také speciální metodu, která mu umožňuje získat odkaz na rozhraní, které je vystaveno v metodě zpětného volání zprostředkovatele, a příjemce má ConnectionConsumer atribut metadata v metodě, který ji identifikuje jako bod připojení příjemce. Vzhledem k GetConsumerConnectionPoints tomu, že metoda, která načítá body připojení příjemce, je virtuální, odvozený WebPartManager ovládací prvek nemusí nutně používat stejný atribut metadat.

  • Metody zpětného volání musí být buď kompatibilní v tom, že příjemce může použít typ rozhraní zadaného metodou zpětného volání zprostředkovatele (to znamená, že příjemce a zprostředkovatel mohou sdílet data přímo), nebo musí vývojář použít WebPartTransformer objekt k transformaci dat od zprostředkovatele do podoby, kterou může příjemce použít.

    Důležité

    Pokud nepotřebujete transformátor, použijte ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) přetížení metody . Pokud potřebujete transformátor, použijte ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) přetížení metody .

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Vytvoří spojení mezi dvěma WebPart ovládacími prvky nebo GenericWebPart pomocí odkazů na ovládací prvky a jejich zadané ConnectionPoint objekty.

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

Ovládací WebPart prvek, který má roli poskytnutí dat jinému připojenému ovládacímu prvku.

providerConnectionPoint
ProviderConnectionPoint

Metoda, která slouží jako metoda zpětného volání pro připojení. Jak je implementováno v sadě ovládacích prvků webové části, jedná se o veřejnou metodu v provider , která je označena atributem ConnectionProvider metadat.

consumer
WebPart

Ovládací WebPart prvek, který má roli přijímat data z providera pak je zpracovávat nebo zobrazovat.

consumerConnectionPoint
ConsumerConnectionPoint

Metoda, která se připojí providerConnectionPoint k , aby získala data pro připojení. Jak je implementováno v sadě ovládacích prvků webové části, jedná se o veřejnou metodu v consumer , která je označena atributem ConnectionConsumer metadat.

Návraty

A WebPartConnection , který obsahuje různé informace o poskytovateli a příjemci potřebné pro připojení.

Výjimky

Kolekce WebPartManager dynamických kolekcí ovládacího prvku je jen pro čtení.

Příklady

Následující příklad kódu ukazuje, jak použít tuto metodu k programovému vytvoření připojení. Úplný kód potřebný ke spuštění příkladu najdete v části Příklad přehledu WebPartManager třídy. V tomto příkladu budete potřebovat zdrojový kód pro uživatelský ovládací prvek, který umožňuje změnit režimy zobrazení na stránce, a zdrojový kód pro dva vlastní WebPart ovládací prvky.

Následuje kód webové stránky, která je hostitelem těchto dvou ovládacích prvků. Stránka používá Register direktivy v horní části k deklaraci uživatelského ovládacího prvku a vlastních ovládacích prvků. Vlastní ovládací prvky jsou poté odkazovány deklarativně v rámci elementu <asp:webpartzone> . Kód, který zpracovává metodu Button1_Click , vytvoří spojení mezi ovládacími prvky pomocí 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 načtení stránky v prohlížeči kliknutím na tlačítko Připojit ovládací prvky webových částí vytvořte připojení. Potom můžete do textového pole zadat nějaká data a kliknutím na tlačítko Zadat 5místné PSČ demonstrovat, že ovládací prvky jsou propojené a že data zadaná v prvním ovládacím prvku se aktualizují ve druhém.

Poznámky

Toto přetížení se používá k připojení ovládacích prvků, pokud jsou jejich spojovací body natolik kompatibilní, aby se mohly připojit bez použití objektu WebPartTransformer . Při volání tohoto přetížení metody jednoduše předá volání druhé přetížené verze metody a předá null parametr, který vyžaduje WebPartTransformer objekt.

Když se pokusíte připojit dva ovládací prvky programově, můžete pomocí CanConnectWebParts metody v podmíněné kontrole určit, zda lze ovládací prvky připojit přímo.

Viz také

Platí pro

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer)

Vytvoří spojení mezi dvěma WebPart ovládacími prvky nebo GenericWebPart pomocí odkazů na ovládací prvky, jejich zadané ConnectionPoint objekty a WebPartTransformer objekt.

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

A WebPart , který má roli poskytnutí dat jinému připojenému ovládacímu prvku.

providerConnectionPoint
ProviderConnectionPoint

Veřejná metoda v provider nástroji, která je označena atributem ConnectionProvider metadat a slouží jako metoda zpětného volání pro připojení.

consumer
WebPart

A WebPart , který má roli přijímat data z provider nebo transformera pak je zpracovávat nebo zobrazovat.

consumerConnectionPoint
ConsumerConnectionPoint

Veřejná metoda v consumer nástroji, která je označena atributem ConnectionConsumer metadat a připojuje se providerConnectionPoint k, aby získala data pro připojení.

transformer
WebPartTransformer

A WebPartTransformer , který umožňuje spojení mezi dvěma ovládacími prvky převodem dat z provider do formátu, který consumer může zpracovat.

Návraty

A WebPartConnection , který obsahuje informace o poskytovateli, spotřebiteli a transformátoru potřebné pro připojení.

Výjimky

Připojení již byla aktivována v nástroji PreRender.

Poznámky

Toto přetížení se používá k připojení ovládacích prvků, když jsou jejich spojovací body nekompatibilní. K nekompatibilitě dochází při consumer implementaci jiného rozhraní, než provider je jeho spojovací bod. Transformátor převede data na typ, který lze pochopit pomocí consumer.

Viz také

Platí pro