WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) 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.
Fournit la méthode par programme standard pour ajouter des contrôles WebPart à une page Web.
public:
System::Web::UI::WebControls::WebParts::WebPart ^ AddWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart, System::Web::UI::WebControls::WebParts::WebPartZoneBase ^ zone, int zoneIndex);
public System.Web.UI.WebControls.WebParts.WebPart AddWebPart (System.Web.UI.WebControls.WebParts.WebPart webPart, System.Web.UI.WebControls.WebParts.WebPartZoneBase zone, int zoneIndex);
member this.AddWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> System.Web.UI.WebControls.WebParts.WebPart
Public Function AddWebPart (webPart As WebPart, zone As WebPartZoneBase, zoneIndex As Integer) As WebPart
Paramètres
- webPart
- WebPart
WebPart (ou contrôle serveur ou utilisateur) à ajouter à une page Web ou à ouvrir sur une page.
- zone
- WebPartZoneBase
WebPartZoneBase auquel webPart
est ajouté.
- zoneIndex
- Int32
Entier qui représente la position ordinale occupée par webPart
dans zone
par rapport à d'autres contrôles dans zone
.
Retours
Contrôle WebPart qui a été ajouté à la page.
Exceptions
zone
n'est pas enregistrée dans la collection de zones du contrôle WebPartManager.
- ou -
webPart
est déjà dans zone
.
La valeur de zoneIndex
est inférieure à zéro.
Exemples
L’exemple de code suivant illustre l’utilisation de la AddWebPart méthode pour ajouter un contrôle serveur par programmation à une page. Le balisage de page contient un élément vide <asp:webpartzone>
et un <asp:webpartmanager>
élément. La première fois que vous cliquez sur le bouton Ajouter un GenericWebPartcalendrier, le code dans le gestionnaire d’événements crée un Calendar contrôle et l’ajoute à une zone en tant qu’objet, en appelant la AddWebPart méthode.
<%@ 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 Button2_Click(object sender, EventArgs e)
{
WebPartManager mgr = WebPartManager1;
Calendar cal = new Calendar();
cal.ID = "cal1";
GenericWebPart calWebPart = mgr.CreateWebPart(cal);
mgr.AddWebPart(calWebPart, WebPartZone1, 1);
}
protected void Button1_Click(object sender, EventArgs e)
{
if (WebPartZone1.WebParts.Count > 1)
{
WebPart cal = WebPartZone1.WebParts[1];
if (cal.Controls[0].GetType().Name == "Calendar"
&& cal != null)
WebPartManager1.DeleteWebPart(cal);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Adding a Server Control</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="WebPartManager1"
runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
DisplayMode="HyperLink"
ID="BulletedList1"
runat="server"
Title="My Links">
<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>
</ZoneTemplate>
</asp:WebPartZone>
<asp:Button ID="Button1" runat="server"
Text="Delete Calendar"
OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server"
Text="Add Calendar"
OnClick="Button2_Click" />
</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 Button2_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
Dim mgr As WebPartManager = WebPartManager1
Dim cal As New Calendar()
cal.ID = "cal1"
Dim calWebPart As GenericWebPart = mgr.CreateWebPart(cal)
mgr.AddWebPart(calWebPart, WebPartZone1, 1)
End Sub
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
If WebPartZone1.WebParts.Count > 1 Then
Dim cal As WebPart = WebPartZone1.WebParts(1)
If cal.Controls(0).GetType().Name = "Calendar" AndAlso _
cal IsNot Nothing Then
WebPartManager1.DeleteWebPart(cal)
End If
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Adding a Server Control</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="WebPartManager1"
runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
DisplayMode="HyperLink"
ID="BulletedList1"
runat="server"
Title="My Links">
<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>
</ZoneTemplate>
</asp:WebPartZone>
<asp:Button ID="Button1" runat="server"
Text="Delete Calendar"
OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server"
Text="Add Calendar"
OnClick="Button2_Click" />
</div>
</form>
</body>
</html>
Remarques
La AddWebPart méthode est utilisée à la fois pour ajouter de nouveaux contrôles dynamiques WebPart à une page et pour rouvrir des contrôles statiques ou dynamiques qui ont déjà été fermés sur une page. Lorsque la méthode est appelée pour ajouter un nouveau contrôle, elle crée en fait une copie du contrôle référencé dans le webPart
paramètre. Un nouvel ID est généré pour la copie du contrôle. Les développeurs doivent donc référencer le WebPart contrôle retourné par la méthode pour obtenir la nouvelle valeur d’ID. Lorsque la méthode est appelée pour rouvrir un contrôle précédemment fermé, elle retourne une référence directe au contrôle référencé par le webPart
paramètre.
Important
Vous devez toujours utiliser la AddWebPart méthode, plutôt que la Add méthode de la collection de contrôles référencés par la WebPartManager.Controls propriété, pour ajouter WebPart des contrôles par programmation à la page, car l’utilisation de la Add méthode lève une exception. Pour ajouter un contrôle qui n’est pas un WebPart contrôle (en d’autres termes, un contrôle serveur qui sera encapsulé avec un GenericWebPart contrôle au moment de l’exécution), vous devez d’abord appeler la CreateWebPart méthode pour créer le contrôle, puis appeler la AddWebPart méthode pour ajouter le contrôle. Pour une démonstration de cette approche, consultez la section Exemple.