WebPartManager.ConnectWebParts Metodo

Definizione

Crea una connessione tra due controlli WebPart (oppure altri controlli server in grado di formare connessioni) presenti in un'area WebPartZoneBase.

Overload

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

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

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

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

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.

Nota

È 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 dispone di 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ò utilizzare il tipo di interfaccia fornito 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 controlli WebPart o GenericWebPart utilizzando solo i riferimenti ai controlli e i relativi oggetti ConnectionPoint specificati.

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 il cui ruolo è fornire dati a un altro controllo connesso.

providerConnectionPoint
ProviderConnectionPoint

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

consumer
WebPart

Controllo WebPart il cui ruolo è ricevere dati da provider, quindi di elaborarli o visualizzarli.

consumerConnectionPoint
ConsumerConnectionPoint

Metodo che esegue la connessione con providerConnectionPoint per ricevere i dati per la connessione. Poiché è implementato nel gruppo di controlli Web part, si tratta di un metodo pubblico in consumer contrassegnato con un attributo di metadati ConnectionConsumer.

Restituisce

Classe WebPartConnection che contiene varie informazioni sul provider e sul consumer necessarie per la connessione.

Eccezioni

L'insieme di insiemi dinamici del controllo WebPartManager è in 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 usando 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 questo overload del metodo viene chiamato, 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 controlli WebPart o GenericWebPart utilizzando solo i riferimenti ai controlli, i relativi oggetti ConnectionPoint specificati e un oggetto WebPartTransformer.

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

Controllo WebPart il cui ruolo è fornire dati a un altro controllo connesso.

providerConnectionPoint
ProviderConnectionPoint

Metodo pubblico nel controllo provider contrassegnato con l'attributo di metadati ConnectionProvider che funge da metodo di callback per la connessione.

consumer
WebPart

Controllo WebPart il cui ruolo è ricevere dati dal provider o dal transformer, quindi di elaborarli o visualizzarli.

consumerConnectionPoint
ConsumerConnectionPoint

Metodo pubblico nel controllo consumer contrassegnato con l'attributo di metadati ConnectionConsumer che è connesso a providerConnectionPoint per ricevere i dati per la connessione.

transformer
WebPartTransformer

Classe WebPartTransformer che consente la connessione tra due controlli convertendo i dati dal controllo provider in un formato che il controllo consumer sia in grado di elaborare.

Restituisce

Classe WebPartConnection che contiene informazioni sul provider, sul consumer e sul trasformatore necessari per la 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