WebPartManager.CreateWebPart Method

Note: This method is new in the .NET Framework version 2.0.

Wraps a server control that is not a WebPart control with a GenericWebPart object, so that the control can have Web Parts functionality.

Namespace: System.Web.UI.WebControls.WebParts
Assembly: System.Web (in system.web.dll)

public virtual GenericWebPart CreateWebPart (
	Control control
public GenericWebPart CreateWebPart (
	Control control
public function CreateWebPart (
	control : Control
) : GenericWebPart



A server control that is not a WebPart control.

Return Value

A GenericWebPart that wraps control and enables it to function as a true WebPart control.

The CreateWebPart method is the main mechanism for enabling server controls that are not WebPart controls to take on the same functionality as a WebPart control, and thus to participate fully in Web Parts applications. By using this method, developers vastly expand the number of server controls that they can use in a Web Parts application, because virtually any type of server control--standard ASP.NET controls, user controls, and custom controls--can be used.

The WebPartManager control also uses this method in two other scenarios to wrap server controls with a GenericWebPart object. When users add server controls to a page by using the ImportCatalogPart control, if the imported control is not a WebPart control, the CreateWebPart method is called. Also, when server controls are declared in persistence format within a WebPartZoneBase zone on a Web page, the CreateWebPart method is called for any controls that are not WebPart controls.

When you add a server control to a zone programmatically, a typical approach is to use the CreateWebPart method to wrap the control with a GenericWebPart object, and then call the AddWebPart method to add the control to the collection of all WebPart controls on the page, which is referenced by the WebParts property.

Notes to Inheritors This method can be overridden to use a derived GenericWebPart class instead of the base class provided with the Web Parts control set.

The following code example demonstrates use of the CreateWebPart method. In the Button2_Click method, the CreateWebPart method is called to wrap a Calendar control with a GenericWebPart object before adding it to the zone.

<%@ Page Language="C#" %>

<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)


<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Adding a Server Control</title>
    <form id="form1" runat="server">
      <asp:WebPartManager ID="WebPartManager1" 
        runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
            Title="My Links">
            <asp:ListItem Value="http://www.microsoft.com">
            <asp:ListItem Value="http://www.msn.com">
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
      <asp:Button ID="Button1" runat="server" 
        Text="Delete Calendar" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Add Calendar" 
        OnClick="Button2_Click" />

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0