WebPartManager.ConnectWebParts Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 forma 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 da controlli server esistenti ASP.NET, in modo che sia possibile aggiungere i membri necessari. I controlli devono soddisfare anche i requisiti specificati di seguito.
Qualsiasi tipo di scenario di connessione tra due controlli deve soddisfare i requisiti seguenti per poter connettersi:
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 ha 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 fornito nel metodo di callback del provider ,ovvero che il consumer e il provider possono condividere direttamente i dati, oppure lo sviluppatore deve usare un WebPartTransformer oggetto per trasformare i dati dal provider in un modulo 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
- 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 .
Codice per la pagina Web che ospita i due controlli seguenti. La pagina usa Register
le direttive nella parte superiore per dichiarare il controllo utente e i controlli personalizzati. I controlli personalizzati vengono quindi a cui si fa riferimento dichiarativamente 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 Immettere 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 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
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- ASP.NET controlli web part
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
- 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 punti di connessione non sono compatibili. L'incompatibilità si verifica quando consumer
implementa un'interfaccia diversa rispetto provider
al punto di connessione. Il trasformatore converte i dati in un tipo che può essere compreso da consumer
.
Vedi anche
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- WebPartTransformer
- ASP.NET controlli web part