WebPartManager.CreateWebPart(Control) Methode

Definitie

Verpakt een serverbesturing die geen WebPart besturingselement is met een GenericWebPart object, zodat het besturingselement functionaliteit van webonderdelen kan hebben.

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

Parameters

control
Control

Een serverbesturing die geen WebPart besturingselement is.

Retouren

Een GenericWebPart die verpakt control en maakt het mogelijk om te functioneren als een waar WebPart besturingselement.

Voorbeelden

Het volgende codevoorbeeld laat het gebruik van de CreateWebPart methode zien. In de Button2_Click methodmethode wordt de CreateWebPart methode aangeroepen om een Calendar besturingselement te verpakken met een GenericWebPart object voordat deze aan de zone wordt toegevoegd.

<%@ 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>

Opmerkingen

De CreateWebPart methode is het belangrijkste mechanisme voor het inschakelen van serverbesturingselementen die geen WebPart besturingselementen zijn voor dezelfde functionaliteit als een WebPart besturingselement, en dus volledig deel te nemen aan webonderdelentoepassingen. Door deze methode te gebruiken, breiden ontwikkelaars het aantal serverbesturingselementen dat ze kunnen gebruiken in een webonderdelentoepassing uit, omdat vrijwel elk type serverbesturingsstandaard ASP.NET besturingselementen, gebruikersbesturingselementen en aangepaste besturingselementen kan worden gebruikt.

Het WebPartManager besturingselement gebruikt deze methode ook in twee andere scenario's om serverbesturingselementen met een GenericWebPart object te verpakken. Wanneer gebruikers serverbesturingselementen toevoegen aan een pagina met behulp van het ImportCatalogPart besturingselement, als het geïmporteerde besturingselement geen WebPart besturingselement is, wordt de CreateWebPart methode aangeroepen. Wanneer serverbesturingselementen worden gedeclareerd in persistentie-indeling binnen een WebPartZoneBase zone op een webpagina, wordt de CreateWebPart methode aangeroepen voor besturingselementen die geen WebPart besturingselementen zijn.

Wanneer u een serverbesturingselement via een programma aan een zone toevoegt, is het gebruikelijk om de CreateWebPart methode te gebruiken om het besturingselement in te pakken met een GenericWebPart object en vervolgens de AddWebPart methode aan te roepen om het besturingselement toe te voegen aan de verzameling van alle WebPart besturingselementen op de pagina waarnaar wordt verwezen door de WebParts eigenschap.

Notities voor overnemers

Deze methode kan worden overschreven om een afgeleide GenericWebPart klasse te gebruiken in plaats van de basisklasse die wordt geleverd met de set webonderdelen.

Van toepassing op

Zie ook