WebPartManager.GetProviderConnectionPoints(WebPart) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.