WebPartManager.GetProviderConnectionPoints(WebPart) Méthode

Définition

Récupère la collection d'objets ProviderConnectionPoint qui peuvent agir comme des points de connexion d'un contrôle serveur qui joue le rôle de fournisseur dans une connexion WebPart.

public:
 virtual System::Web::UI::WebControls::WebParts::ProviderConnectionPointCollection ^ GetProviderConnectionPoints(System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
public virtual System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection GetProviderConnectionPoints (System.Web.UI.WebControls.WebParts.WebPart webPart);
abstract member GetProviderConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection
override this.GetProviderConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection
Public Overridable Function GetProviderConnectionPoints (webPart As WebPart) As ProviderConnectionPointCollection

Paramètres

webPart
WebPart

Contrôle serveur qui joue le rôle de fournisseur dans une connexion.

Retours

ProviderConnectionPointCollection qui contient tous les points de connexion du fournisseur.

Exceptions

webPart a la valeur null.

Exemples

L'exemple de code suivant illustre l'utilisation de la méthode GetProviderConnectionPoints.

L’exemple comporte quatre parties :

  • Contrôle utilisateur qui vous permet de modifier les modes d’affichage d’une page de composants WebPart.

  • Page Web qui contient deux contrôles personnalisés WebPart qui peuvent être connectés et un <asp:webpartmanager> élément.

  • Fichier de code source qui contient deux contrôles personnalisés WebPart et une interface personnalisée.

  • Explication du fonctionnement de l’exemple dans un navigateur.

La première partie de l’exemple de code est le contrôle utilisateur permettant de modifier les modes d’affichage. Vous pouvez obtenir le code source du contrôle utilisateur à partir de la section Exemple de la vue d’ensemble de la WebPartManager classe. Pour plus d’informations sur les modes d’affichage et le fonctionnement du contrôle utilisateur, consultez Procédure pas à pas : modification des modes d’affichage sur une page de composants WebPart.

Le balisage déclaratif de la page web contient Register des directives pour le contrôle utilisateur et les contrôles personnalisés. Il existe un <asp:webpartmanager> élément, un <asp:webpartzone> élément pour contenir les contrôles personnalisés et un <asp:connectionszone> élément. Notez que dans la Page_Load méthode, le code vérifie si une connexion existe déjà et, si ce n’est pas le cas, définit un fournisseur, un consommateur et leurs points de connexion respectifs, puis ajoute une nouvelle connexion au jeu de connexions statiques référencées par la StaticConnections propriété . Notez que l’objet récupéré à l’aide ProviderConnectionPointCollection de la GetProviderConnectionPoints méthode est ensuite passé à la CanConnectWebParts méthode pour déterminer si une connexion entre les deux contrôles peut être créée.

<%@ 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 Page_Load(object sender, EventArgs e)
  {
    
    // Define provider, consumer, and connection points.
    WebPart provider = mgr.WebParts["zip1"];
    ProviderConnectionPoint provConnPoint =
      mgr.GetProviderConnectionPoints(provider)["ZipCodeProvider"];
    WebPart consumer = mgr.WebParts["weather1"];
    ConsumerConnectionPoint consConnPoint =
      mgr.GetConsumerConnectionPoints(consumer)["ZipCodeConsumer"];
    
    // Check whether the connection already exists.
    if (mgr.CanConnectWebParts(provider, provConnPoint,
      consumer, consConnPoint))
    {
      // Create a new static connection.
      WebPartConnection conn = new WebPartConnection();
      conn.ID = "staticConn1";
      conn.ConsumerID = "weather1";
      conn.ConsumerConnectionPointID = "ZipCodeConsumer";
      conn.ProviderID = "zip1";
      conn.ProviderConnectionPointID = "ZipCodeProvider";
      mgr.StaticConnections.Add(conn);
    }
 }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <!-- Reference the WebPartManager control. -->
      <asp:WebPartManager ID="mgr" runat="server" />   
    <div>
      <uc1:DisplayModeMenuCS ID="displaymode1" 
        runat="server" />
      <!-- Reference consumer and provider controls 
           in a zone. -->
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <aspSample:ZipCodeWebPart ID="zip1" 
            runat="server" 
            Title="Zip Code Control"/>
          <aspSample:WeatherWebPart ID="weather1" 
            runat="server" 
            Title="Weather Control" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <!-- Add a ConnectionsZone so users can connect 
           controls. -->
      <asp:ConnectionsZone ID="ConnectionsZone1" 
        runat="server" />
    </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 Page_Load(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    
    ' Define provider, consumer, and connection points.
    Dim provider As WebPart = mgr.WebParts("zip1")
    Dim provConnPoint As ProviderConnectionPoint = _
      mgr.GetProviderConnectionPoints(provider)("ZipCodeProvider")
    Dim consumer As WebPart = mgr.WebParts("weather1")
    Dim consConnPoint As ConsumerConnectionPoint = _
      mgr.GetConsumerConnectionPoints(consumer)("ZipCodeConsumer")
    
    ' Check whether the connection already exists.
    If mgr.CanConnectWebParts(provider, provConnPoint, _
      consumer, consConnPoint) Then
      ' Create a new static connection.
      Dim conn As New WebPartConnection()
      conn.ID = "staticConn1"
      conn.ConsumerID = "weather1"
      conn.ConsumerConnectionPointID = "ZipCodeConsumer"
      conn.ProviderID = "zip1"
      conn.ProviderConnectionPointID = "ZipCodeProvider"
      mgr.StaticConnections.Add(conn)
    End If
    
  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <!-- Reference the WebPartManager control. -->
      <asp:WebPartManager ID="mgr" runat="server" />   
    <div>
      <uc1:DisplayModeMenuVB ID="displaymode1" 
        runat="server" />
      <!-- Reference consumer and provider controls 
           in a zone. -->
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <aspSample:ZipCodeWebPart ID="zip1" 
            runat="server" 
            Title="Zip Code Control"/>
          <aspSample:WeatherWebPart ID="weather1" 
            runat="server" 
            Title="Weather Control" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <!-- Add a ConnectionsZone so users can connect 
           controls. -->
      <asp:ConnectionsZone ID="ConnectionsZone1" 
        runat="server" />
    </div>
    </form>
</body>
</html>

La troisième partie de l’exemple est le code source des contrôles. Vous pouvez obtenir ce code et des instructions pour sa compilation à partir de la section Exemple de la vue d’ensemble de la WebPartManager classe.

Une fois que vous avez chargé la page Web dans un navigateur, cliquez sur le contrôle de liste déroulante Mode d’affichage , puis sélectionnez Se connecter pour basculer la page en mode connexion. Le mode Connexion utilise l’élément <asp:connectionszone> pour vous permettre de créer des connexions entre les contrôles. En mode connexion, cliquez sur la flèche vers le bas dans la barre de titre du contrôle Code postal pour activer son menu verbes, puis cliquez sur Se connecter. Une fois l’interface utilisateur de connexion affichée, notez qu’une connexion a déjà été créée par le code contenu dans la Page_Load méthode. Si vous revenez à cette page dans une session de navigateur ultérieure, cette connexion statique sera déjà établie et n’aura pas besoin d’être recréée chaque fois que la page se charge.

Remarques

Une connexion de composants WebPart implique toujours exactement deux contrôles, l’un agissant en tant que fournisseur de données, l’autre en tant que consommateur de données. Chaque contrôle doit avoir une ou plusieurs méthodes définies en tant que points de connexion. Dans le cas d’un contrôle fournisseur, ses points de connexion sont des ProviderConnectionPoint objets.

Un fournisseur doit toujours disposer d’au moins un point de connexion pour pouvoir établir une connexion. La GetProviderConnectionPoints méthode vérifie un contrôle fournisseur et récupère une collection de tous ses points de connexion. La récupération des points de connexion du fournisseur est une étape nécessaire pour former une connexion de composants WebPart.

S’applique à

Voir aussi