Partager via


WebPartManager.ConnectWebParts Méthode

Définition

Crée une connexion entre deux contrôles WebPart (ou d'autres contrôles serveur capables de former des connexions) qui résident dans une zone WebPartZoneBase.

Surcharges

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Crée une connexion entre deux contrôles WebPart ou GenericWebPart en utilisant uniquement les références aux contrôles et leurs objets ConnectionPoint spécifiés.

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

Crée une connexion entre deux contrôles WebPart ou GenericWebPart à l'aide des références aux contrôles, de leurs objets ConnectionPoint spécifiés et d'un objet WebPartTransformer.

Remarques

La ConnectWebParts méthode forme une connexion entre deux WebPart contrôles qui peuvent être connectés. Avant d’appeler cette méthode pour créer une connexion, vous pouvez également appeler la CanConnectWebParts méthode dans un contrôle conditionnel pour vous assurer que les contrôles répondent aux exigences de formation d’une connexion.

Notes

Il est également possible de créer une connexion entre deux contrôles serveur qui ne sont pas WebPart des contrôles. En général, les deux contrôles doivent être des contrôles serveur personnalisés (par exemple, des contrôles qui héritent de WebControl ou des contrôles serveur ASP.NET existants) afin que vous puissiez ajouter les membres requis. Les contrôles doivent également répondre aux exigences spécifiées ci-dessous.

Tout type de scénario de connexion entre deux contrôles doit répondre aux exigences suivantes pour pouvoir se connecter :

  • Chaque contrôle réside dans une WebPartZoneBase zone (il n’a pas besoin d’être la même zone).

  • Tel qu’il est implémenté dans le jeu de contrôles WebPart, le contrôle fournisseur dans une connexion implémente une interface en tant que méthode publique qui sert de rappel au fournisseur et possède un ConnectionProvider attribut de métadonnées sur la méthode pour l’identifier en tant que point de connexion du fournisseur. Étant donné que la GetProviderConnectionPoints méthode qui récupère les points de connexion du fournisseur est virtuelle, un contrôle dérivé WebPartManager n’a pas nécessairement besoin d’utiliser le même attribut de métadonnées.

  • Tel qu’implémenté dans le jeu de contrôles WebPart, le contrôle consommateur dans une connexion a également une méthode spéciale qui lui permet d’obtenir une référence à l’interface exposée dans la méthode de rappel du fournisseur, et le consommateur a un ConnectionConsumer attribut de métadonnées sur la méthode pour l’identifier en tant que point de connexion consommateur. Étant donné que la GetConsumerConnectionPoints méthode qui récupère les points de connexion du consommateur est virtuelle, un contrôle dérivé WebPartManager n’a pas nécessairement besoin d’utiliser le même attribut de métadonnées.

  • Les méthodes de rappel doivent être compatibles, car le consommateur peut utiliser le type d’interface fourni dans la méthode de rappel du fournisseur (ce qui signifie que le consommateur et le fournisseur peuvent partager des données directement), ou le développeur doit utiliser un WebPartTransformer objet pour transformer les données du fournisseur en une forme que le consommateur peut utiliser.

    Important

    Lorsque vous n’avez pas besoin d’un transformateur, utilisez la surcharge de méthode ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) . Lorsque vous avez besoin d’un transformateur, utilisez la surcharge de méthode ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) .

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

Crée une connexion entre deux contrôles WebPart ou GenericWebPart en utilisant uniquement les références aux contrôles et leurs objets ConnectionPoint spécifiés.

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

Paramètres

provider
WebPart

Contrôle WebPart dont le rôle est de fournir des données à un autre contrôle connecté.

providerConnectionPoint
ProviderConnectionPoint

Méthode qui sert de méthode de rappel pour la connexion. Tel qu'implémenté dans le jeu de composants WebPart, il s'agit d'une méthode publique dans provider qui est marquée avec un attribut de métadonnées ConnectionProvider.

consumer
WebPart

Contrôle WebPart dont le rôle est de recevoir des données de provider et de les traiter ensuite ou de les afficher.

consumerConnectionPoint
ConsumerConnectionPoint

Méthode qui se connecte avec providerConnectionPoint pour recevoir les données pour la connexion. Tel qu'implémenté dans le jeu de composants WebPart, il s'agit d'une méthode publique dans consumer qui est marquée avec un attribut de métadonnées ConnectionConsumer.

Retours

WebPartConnection qui contient les différentes informations relatives au fournisseur et au consommateur nécessaires pour une connexion.

Exceptions

La collection de collections dynamiques du contrôle WebPartManager est en lecture seule.

Exemples

L’exemple de code suivant montre comment utiliser cette méthode pour créer une connexion par programmation. Pour obtenir le code complet requis pour exécuter l’exemple, consultez la section Exemple de la vue d’ensemble de la WebPartManager classe. À partir de cet exemple, vous aurez besoin du code source pour le contrôle utilisateur qui vous permet de modifier les modes d’affichage sur la page, et du code source pour les deux contrôles personnalisés WebPart .

Le code de la page Web qui héberge les deux contrôles est le suivant. La page utilise des Register directives en haut pour déclarer le contrôle utilisateur et les contrôles personnalisés. Les contrôles personnalisés sont ensuite référencés de manière déclarative dans un <asp:webpartzone> élément . Le code qui gère la Button1_Click méthode crée une connexion entre les contrôles à l’aide de la ConnectWebParts méthode .

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

Après avoir chargé la page dans un navigateur, cliquez sur le bouton Connecter des contrôles WebPart pour former la connexion. Vous pouvez ensuite entrer des données dans la zone de texte, puis cliquer sur le bouton Entrer un code postal à 5 chiffres pour montrer que les contrôles sont connectés et que les données entrées dans le premier contrôle sont mises à jour dans le second.

Remarques

Cette surcharge est utilisée pour connecter des contrôles lorsque leurs points de connexion sont suffisamment compatibles pour qu’ils puissent se connecter sans utiliser d’objet WebPartTransformer . Lorsque cette surcharge de la méthode est appelée, elle passe simplement l’appel à l’autre version surchargée de la méthode et passe null pour le paramètre qui nécessite un WebPartTransformer objet.

Lorsque vous tentez de connecter deux contrôles par programme, vous pouvez utiliser la CanConnectWebParts méthode dans une vérification conditionnelle pour déterminer si les contrôles peuvent être directement connectés.

Voir aussi

S’applique à

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

Crée une connexion entre deux contrôles WebPart ou GenericWebPart à l'aide des références aux contrôles, de leurs objets ConnectionPoint spécifiés et d'un objet 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

Paramètres

provider
WebPart

WebPart dont le rôle est de fournir des données à un autre contrôle connecté.

providerConnectionPoint
ProviderConnectionPoint

Méthode publique dans provider qui est marquée avec un attribut de métadonnées ConnectionProvider et qui sert de méthode de rappel pour la connexion.

consumer
WebPart

WebPart dont le rôle est de recevoir des données de provider ou de transformer et de les traiter ou de les afficher.

consumerConnectionPoint
ConsumerConnectionPoint

Méthode publique dans consumer qui est marquée avec un attribut de métadonnées ConnectionConsumer et se connecte avec providerConnectionPoint pour recevoir les données pour la connexion.

transformer
WebPartTransformer

WebPartTransformer qui active une connexion entre deux contrôles en convertissant les données de provider dans un format pouvant être traité par consumer.

Retours

WebPartConnection qui contient les informations relatives au fournisseur, au consommateur et au transformateur nécessaires pour une connexion.

Exceptions

Des connexions ont déjà été activées dans PreRender.

Remarques

Cette surcharge est utilisée pour connecter des contrôles lorsque leurs points de connexion sont incompatibles. L’incompatibilité se produit lorsque consumer implémente une interface différente de provider celle de son point de connexion. Le transformateur convertit les données en un type qui peut être compris par consumer.

Voir aussi

S’applique à