WebPartManager.WebParts Propriété
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.
Obtient une référence à tous les contrôles WebPart suivis par le contrôle WebPartManager d'une page Web.
public:
property System::Web::UI::WebControls::WebParts::WebPartCollection ^ WebParts { System::Web::UI::WebControls::WebParts::WebPartCollection ^ get(); };
[System.ComponentModel.Browsable(false)]
public System.Web.UI.WebControls.WebParts.WebPartCollection WebParts { get; }
[<System.ComponentModel.Browsable(false)>]
member this.WebParts : System.Web.UI.WebControls.WebParts.WebPartCollection
Public ReadOnly Property WebParts As WebPartCollection
Valeur de propriété
WebPartCollection qui contient des références à un jeu de composants WebPart.
- Attributs
Exemples
L’exemple de code suivant montre comment utiliser la WebParts propriété par programmation pour accéder aux contrôles individuels WebPart . Notez que dans le balisage déclaratif de la page Web, dans l’élément<asp:webpartzone>
, il existe deux contrôles serveur standard ASP.NET. Bien que ces éléments n’héritent pas de la WebPart classe, car ils se trouvent dans une zone, ils seront encapsulés avec un GenericWebPart objet au moment de l’exécution, et seront donc inclus dans la collection référencée par la WebParts propriété. Vous pouvez également ajouter des contrôles personnalisés WebPart , des contrôles utilisateur ou des contrôles serveur personnalisés dans cette zone, et ils seraient gérés de la même façon.
<%@ Page Language="C#" %>
<!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)
{
Label1.Text = "WebPart count: " +
WebPartManager1.WebParts.Count.ToString();
}
protected void Button2_Click(object sender, EventArgs e)
{
WebPartManager1.WebParts["Calendar1"].ChromeType =
PartChromeType.BorderOnly;
}
</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="WebPartManager1" runat="server" />
<div>
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
DisplayMode="HyperLink"
ID="BulletedList1"
runat="server"
Title="My Links"
ExportMode="All">
<asp:ListItem Value="http://www.microsoft.com">
Microsoft
</asp:ListItem>
<asp:ListItem Value="http://www.msn.com">
MSN
</asp:ListItem>
<asp:ListItem Value="http://www.contoso.com">
Contoso Corp.
</asp:ListItem>
</asp:BulletedList>
<asp:Calendar ID="Calendar1" runat="server"
Title="My Calendar" />
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<asp:Button ID="Button1" runat="server"
Text="WebPart Count"
OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server"
Text="Hide Calendar Title"
OnClick="Button2_Click" />
<br />
<asp:Label ID="Label1" runat="server" text="" />
</div>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<!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)
Label1.Text = "WebPart count: " & _
WebPartManager1.WebParts.Count.ToString()
End Sub
Protected Sub Button2_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
WebPartManager1.WebParts("Calendar1").ChromeType = _
PartChromeType.BorderOnly
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="WebPartManager1" runat="server" />
<div>
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
DisplayMode="HyperLink"
ID="BulletedList1"
runat="server"
Title="My Links"
ExportMode="All">
<asp:ListItem Value="http://www.microsoft.com">
Microsoft
</asp:ListItem>
<asp:ListItem Value="http://www.msn.com">
MSN
</asp:ListItem>
<asp:ListItem Value="http://www.contoso.com">
Contoso Corp.
</asp:ListItem>
</asp:BulletedList>
<asp:Calendar ID="Calendar1" runat="server"
Title="My Calendar" />
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<asp:Button ID="Button1" runat="server"
Text="WebPart Count"
OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server"
Text="Hide Calendar Title"
OnClick="Button2_Click" />
<br />
<asp:Label ID="Label1" runat="server" text="" />
</div>
</form>
</body>
</html>
Notez que pour que l’exemple de code fonctionne, vous devez ajouter un paramètre dans le fichier Web.config pour activer l’exportation de fichiers de description composants WebPart. Vérifiez que vous disposez d’un fichier Web.config dans le même répertoire que la page Web pour cet exemple de code. Dans la <system.web>
section, assurez-vous qu’il existe un élément avec un <webParts>
enableExport
attribut défini true
sur , comme dans le balisage suivant.
<webParts enableExport="true">
...
</webParts>
Après avoir chargé la page dans un navigateur, si vous cliquez sur le bouton Nombre de composants WebPart , le code utilise la WebParts propriété pour renvoyer le nombre de contrôles dans la collection. Si vous cliquez sur le bouton Masquer le titre du calendrier, le code modifie le calendrier afin qu’il ne s’affiche qu’avec une bordure et non un titre.
Remarques
La WebParts propriété est utilisée par le WebPartManager contrôle pour suivre tous les contrôles contenus dans les WebPartZoneBase WebPart zones de la page. Bien que la collection soit en lecture seule, vous pouvez accéder à des contrôles individuels WebPart via la collection et apporter des modifications par programmation.
Notes
Il est possible d’avoir un WebPart contrôle placé sur une page en dehors d’une WebPartZone zone, ce qui entraîne le suivi WebPartManager du contrôle ou référencé dans sa WebParts collection. Toutefois, il n’existe aucune raison d’utiliser un WebPart contrôle en dehors d’une zone, car il perd ensuite ses fonctionnalités de composants WebPart et agit comme un contrôle de serveur normal.
Tout type de contrôle pouvant être placé dans une zone, qu’il s’agisse d’un contrôle personnaliséWebPart, d’un contrôle standard ASP.NET, d’un contrôle utilisateur ou d’un contrôle de serveur personnalisé, peut être traité comme un WebPart contrôle au moment de l’exécution. Lorsqu’un contrôle qui n’est pas un WebPart contrôle est placé dans une WebPartZone zone, au moment de l’exécution ASP.NET encapsule le contrôle avec un GenericWebPart objet, afin que le contrôle puisse se comporter comme un vrai WebPart contrôle. Par conséquent, en utilisant la WebParts propriété, le WebPartManager contrôle peut suivre n’importe quel type de contrôle de serveur, qu’il dérive de la WebPart classe.