WebPartManager.CreateWebPart(Control) Methode

Definition

Umschließt ein Serversteuerelement, das kein WebPart-Steuerelement ist, mit einem GenericWebPart-Objekt, sodass das Steuerelement über Webparts-Funktionen verfügt.

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

Parameter

control
Control

Ein Serversteuerelement, das kein WebPart-Steuerelement ist.

Gibt zurück

Ein GenericWebPart, der control umschließt und damit dessen Verwendung als echtes WebPart-Steuerelement ermöglicht.

Beispiele

Im folgenden Codebeispiel wird die Verwendung der CreateWebPart -Methode veranschaulicht. Button2_Click methodIn wird die CreateWebPart -Methode aufgerufen, um ein Calendar Steuerelement mit einem GenericWebPart -Objekt zu umschließen, bevor es der Zone hinzugefügt wird.

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

Hinweise

Die CreateWebPart -Methode ist der Hauptmechanismus zum Aktivieren von Serversteuerelementen, die keine WebPart Steuerelemente sind, die die gleiche Funktionalität wie ein WebPart Steuerelement übernehmen und somit vollständig an Webpartanwendungen teilnehmen können. Mit dieser Methode erweitern Entwickler die Anzahl der Serversteuerelemente, die sie in einer Webpartanwendung verwenden können, erheblich, da praktisch jeder Typ von Serversteuerelementen – Standardsteuerelemente ASP.NET, Benutzersteuerelemente und benutzerdefinierte Steuerelemente – verwendet werden kann.

Das WebPartManager Steuerelement verwendet diese Methode auch in zwei anderen Szenarien, um Serversteuerelemente mit einem GenericWebPart -Objekt zu umschließen. Wenn Benutzer mithilfe des ImportCatalogPart -Steuerelements Serversteuerelemente zu einer Seite hinzufügen, wird die CreateWebPart -Methode aufgerufen, wenn das importierte Steuerelement kein WebPart Steuerelement ist. Wenn Serversteuerelemente in einer Zone auf einer WebPartZoneBase Webseite im Persistenzformat deklariert werden, wird die CreateWebPart -Methode für alle Steuerelemente aufgerufen, die keine WebPart Steuerelemente sind.

Wenn Sie einer Zone programmgesteuert ein Serversteuerelement hinzufügen, besteht ein typischer Ansatz darin, die CreateWebPart -Methode zum Umschließen des Steuerelements mit einem GenericWebPart -Objekt zu verwenden und dann die AddWebPart -Methode aufzurufen, um das Steuerelement der Auflistung aller WebPart Steuerelemente auf der Seite hinzuzufügen, auf die von der WebParts -Eigenschaft verwiesen wird.

Hinweise für Vererber

Diese Methode kann überschrieben werden, um eine abgeleitete GenericWebPart Klasse anstelle der Basisklasse zu verwenden, die mit dem Webpart-Steuerelementsatz bereitgestellt wird.

Gilt für:

Weitere Informationen