WebPartManager.ConnectWebParts Metodo

Definizione

Crea una connessione tra due WebPart controlli (o altri controlli server in grado di formare connessioni) che risiedono in una WebPartZoneBase zona.

Overload

Nome Descrizione
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Crea una connessione tra due WebPart controlli o GenericWebPart utilizzando solo i riferimenti ai controlli e ai relativi oggetti specificati ConnectionPoint .

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

Crea una connessione tra due WebPart controlli o GenericWebPart utilizzando i riferimenti ai controlli, ai relativi oggetti specificati ConnectionPoint e a un WebPartTransformer oggetto .

Commenti

Il ConnectWebParts metodo costituisce una connessione tra due WebPart controlli che possono essere connessi. Prima di chiamare questo metodo per creare una connessione, è anche possibile chiamare il CanConnectWebParts metodo in un controllo condizionale per assicurarsi che i controlli soddisfino i requisiti per la creazione di una connessione.

Note

È anche possibile creare una connessione tra due controlli server che non WebPart sono controlli. In generale, i due controlli devono essere controlli server personalizzati (ad esempio, controlli che ereditano da WebControl o controlli server ASP.NET esistenti) in modo da poter aggiungere i membri necessari. I controlli devono anche soddisfare i requisiti specificati di seguito.

Qualsiasi tipo di scenario di connessione tra due controlli deve soddisfare i requisiti seguenti per potersi connettere:

  • Ogni controllo si trova in una WebPartZoneBase zona (non deve essere la stessa zona).

  • Come implementato nel set di controlli Web part, il controllo del provider in una connessione implementa un'interfaccia come metodo pubblico che funge da callback al provider e ha un ConnectionProvider attributo di metadati sul metodo per identificarlo come punto di connessione del provider. Poiché il GetProviderConnectionPoints metodo che recupera i punti di connessione del provider è virtuale, un controllo derivato WebPartManager non deve necessariamente usare lo stesso attributo di metadati.

  • Come implementato nel set di controlli Web part, il controllo consumer in una connessione ha anche un metodo speciale che consente di ottenere un riferimento all'interfaccia esposta nel metodo di callback del provider e il consumer dispone di un ConnectionConsumer attributo di metadati sul metodo per identificarlo come punto di connessione consumer. Poiché il GetConsumerConnectionPoints metodo che recupera i punti di connessione consumer è virtuale, un controllo derivato WebPartManager non deve necessariamente usare lo stesso attributo di metadati.

  • I metodi di callback devono essere compatibili, in quanto il consumer può usare il tipo di interfaccia fornita nel metodo di callback del provider (ovvero il consumer e il provider possono condividere i dati direttamente) oppure lo sviluppatore deve usare un WebPartTransformer oggetto per trasformare i dati dal provider in un formato che il consumer può usare.

    Importante

    Quando non è necessario un trasformatore, usare l'overload del ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) metodo . Quando è necessario un trasformatore, usare l'overload del ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) metodo .

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Crea una connessione tra due WebPart controlli o GenericWebPart utilizzando solo i riferimenti ai controlli e ai relativi oggetti specificati ConnectionPoint .

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

Parametri

provider
WebPart

Controllo WebPart che ha il ruolo di arredare i dati a un altro controllo connesso.

providerConnectionPoint
ProviderConnectionPoint

Metodo che funge da metodo di callback per la connessione. Come implementato nel set di controlli Web part, si tratta di un metodo pubblico in che provider è contrassegnato con un ConnectionProvider attributo di metadati.

consumer
WebPart

Controllo WebPart che ha il ruolo di ricevere dati da providere quindi elaborarli o visualizzarli.

consumerConnectionPoint
ConsumerConnectionPoint

Metodo che si connette a providerConnectionPoint per ricevere i dati per la connessione. Come implementato nel set di controlli Web part, si tratta di un metodo pubblico in che consumer è contrassegnato con un ConnectionConsumer attributo di metadati.

Valori restituiti

Oggetto WebPartConnection contenente le varie informazioni sul provider e sul consumer necessario per una connessione.

Eccezioni

La WebPartManager raccolta di raccolte dinamiche del controllo è di sola lettura.

Esempio

Nell'esempio di codice seguente viene illustrato come usare questo metodo per creare una connessione a livello di codice. Per il codice completo necessario per eseguire l'esempio, vedere la sezione Esempio della panoramica della WebPartManager classe. Da questo esempio sarà necessario il codice sorgente per il controllo utente che consente di modificare le modalità di visualizzazione nella pagina e il codice sorgente per i due controlli personalizzati WebPart .

Il codice per la pagina Web che ospita i due controlli segue. La pagina usa direttive Register nella parte superiore per dichiarare il controllo utente e i controlli personalizzati. I controlli personalizzati vengono quindi a cui viene fatto riferimento in modo dichiarativo all'interno di un <asp:webpartzone> elemento . Il codice che gestisce il Button1_Click metodo crea una connessione tra i controlli utilizzando il ConnectWebParts metodo .

<%@ 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>

Dopo aver caricato la pagina in un browser, fare clic sul pulsante Connetti controlli WebPart per formare la connessione. È quindi possibile immettere alcuni dati nella casella di testo e fare clic sul pulsante Immetti codice postale a 5 cifre per dimostrare che i controlli sono connessi e che i dati immessi nel primo controllo vengono aggiornati nel secondo.

Commenti

Questo overload viene usato per connettere i controlli quando i relativi punti di connessione sono sufficientemente compatibili che possono connettersi senza usare un WebPartTransformer oggetto . Quando viene chiamato questo overload del metodo, passa semplicemente la chiamata all'altra versione di overload del metodo e passa null per il parametro che richiede un WebPartTransformer oggetto .

Quando si tenta di connettere due controlli a livello di codice, è possibile usare il CanConnectWebParts metodo in un controllo condizionale per determinare se i controlli possono essere connessi direttamente.

Vedi anche

Si applica a

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

Crea una connessione tra due WebPart controlli o GenericWebPart utilizzando i riferimenti ai controlli, ai relativi oggetti specificati ConnectionPoint e a un WebPartTransformer oggetto .

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

Parametri

provider
WebPart

Oggetto WebPart che ha il ruolo di arredare i dati a un altro controllo connesso.

providerConnectionPoint
ProviderConnectionPoint

Un metodo pubblico in provider che è contrassegnato con un ConnectionProvider attributo di metadati e funge da metodo di callback per la connessione.

consumer
WebPart

Oggetto WebPart che ha il ruolo di ricevere dati da provider o transformere quindi elaborarli o visualizzarli.

consumerConnectionPoint
ConsumerConnectionPoint

Metodo pubblico in consumer contrassegnato con un ConnectionConsumer attributo di metadati e si connette providerConnectionPoint a per ricevere i dati per la connessione.

transformer
WebPartTransformer

Oggetto WebPartTransformer che consente una connessione tra due controlli convertendo i dati da provider a un formato in consumer grado di elaborare.

Valori restituiti

Oggetto WebPartConnection contenente le informazioni sul provider, il consumer e il trasformatore necessari per una connessione.

Eccezioni

Le connessioni sono già state attivate in PreRender.

Commenti

Questo overload viene usato per connettere i controlli quando i relativi punti di connessione non sono compatibili. L'incompatibilità si verifica quando consumer implementa un'interfaccia diversa da provider quella del punto di connessione. Il trasformatore converte i dati in un tipo che può essere compreso da consumer.

Vedi anche

Si applica a