Partager via


WebPartManager.CreateWebPart(Control) Méthode

Définition

Encapsule un contrôle serveur qui n'est pas un contrôle WebPart avec un objet GenericWebPart, de manière à ce que le contrôle puisse avoir les fonctionnalités WebPart.

public:
 virtual System::Web::UI::WebControls::WebParts::GenericWebPart ^ CreateWebPart(System::Web::UI::Control ^ control);
public virtual System.Web.UI.WebControls.WebParts.GenericWebPart CreateWebPart (System.Web.UI.Control control);
abstract member CreateWebPart : System.Web.UI.Control -> System.Web.UI.WebControls.WebParts.GenericWebPart
override this.CreateWebPart : System.Web.UI.Control -> System.Web.UI.WebControls.WebParts.GenericWebPart
Public Overridable Function CreateWebPart (control As Control) As GenericWebPart

Paramètres

control
Control

Contrôle serveur qui n'est pas un contrôle WebPart.

Retours

GenericWebPart qui encapsule control et lui permet de fonctionner comme un véritable contrôle WebPart.

Exemples

L’exemple de code suivant illustre l’utilisation de la CreateWebPart méthode . Dans , Button2_Click methodla CreateWebPart méthode est appelée pour encapsuler un Calendar contrôle avec un GenericWebPart objet avant de l’ajouter à la zone.

<%@ 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 CreateWebPart méthode est le mécanisme principal permettant aux contrôles serveur qui ne sont pas WebPart des contrôles de prendre les mêmes fonctionnalités qu’un WebPart contrôle, et donc de participer pleinement aux applications WebPart. En utilisant cette méthode, les développeurs étendent considérablement le nombre de contrôles serveur qu’ils peuvent utiliser dans une application WebPart, car pratiquement n’importe quel type de contrôle serveur (contrôles ASP.NET standard, contrôles utilisateur et contrôles personnalisés) peut être utilisé.

Le WebPartManager contrôle utilise également cette méthode dans deux autres scénarios pour encapsuler les contrôles serveur avec un GenericWebPart objet . Lorsque les utilisateurs ajoutent des contrôles serveur à une page à l’aide du ImportCatalogPart contrôle , si le contrôle importé n’est pas un WebPart contrôle, la CreateWebPart méthode est appelée. En outre, lorsque les contrôles serveur sont déclarés au format de persistance dans une WebPartZoneBase zone d’une page Web, la CreateWebPart méthode est appelée pour tous les contrôles qui ne sont pas WebPart des contrôles.

Lorsque vous ajoutez un contrôle serveur à une zone par programmation, une approche classique consiste à utiliser la CreateWebPart méthode pour encapsuler le contrôle avec un GenericWebPart objet, puis à appeler la AddWebPart méthode pour ajouter le contrôle à la collection de tous les WebPart contrôles de la page, qui est référencée par la WebParts propriété .

Notes pour les héritiers

Cette méthode peut être remplacée pour utiliser une classe dérivée GenericWebPart au lieu de la classe de base fournie avec le jeu de contrôles WebPart.

S’applique à

Voir aussi