WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Méthode

Définition

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

WebPart

Contrôle WebPart qui a été ajouté à la page.

Exceptions

webPart a la valeur null.

-ou- zone a la valeur null.

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 le bouton Ajouter un calendrier est cliqué, le code du gestionnaire d’événements crée un Calendar contrôle et l’ajoute à une zone en tant qu’objet GenericWebPart , 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.

S’applique à

Voir aussi