Sdílet prostřednictvím


WebPartManager.CreateWebPart(Control) Metoda

Definice

Zabalí serverový ovládací prvek, který není ovládacím prvek objektem WebPartGenericWebPart , aby ovládací prvek mohl mít funkce webových částí.

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

Parametry

control
Control

Serverový ovládací prvek, který není ovládacím WebPart prvek.

Návraty

A GenericWebPart , který zabalí control a umožní jeho fungování jako skutečný WebPart ovládací prvek.

Příklady

Následující příklad kódu ukazuje použití CreateWebPart metody. Button2_Click methodV , CreateWebPart metoda je volána k zabalení Calendar ovládacího prvku s GenericWebPart objektem před jeho přidáním do zóny.

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

Poznámky

Metoda CreateWebPart je hlavním mechanismem pro povolení serverových ovládacích prvků, které nejsou WebPart ovládacími prvky, aby převzaly stejné funkce jako WebPart ovládací prvek, a proto se plně účastnit aplikací webových částí. Díky této metodě vývojáři výrazně rozšiřují počet serverových ovládacích prvků, které můžou používat v aplikaci webových částí, protože lze použít prakticky jakýkoli typ ovládacích prvků serveru se standardními ovládacími prvky ASP.NET, uživatelskými ovládacími prvky a vlastními ovládacími prvky.

Ovládací WebPartManager prvek také používá tuto metodu ve dvou dalších scénářích k zabalení serverových ovládacích prvků s objektem GenericWebPart . Když uživatelé přidávají serverové ovládací prvky na stránku pomocí ImportCatalogPart ovládacího prvku, pokud importovaný ovládací prvek není WebPart ovládací prvek, CreateWebPart volá se metoda. Pokud jsou ovládací prvky serveru deklarovány ve formátu trvalosti v rámci WebPartZoneBase zóny na webové stránce, volá se metoda pro všechny ovládací prvky, CreateWebPart které nejsou WebPart ovládacími prvky.

Když přidáte serverový ovládací prvek do zóny programově, typickým přístupem je použití CreateWebPart metody k zabalení ovládacího prvku objektu GenericWebPart a volání AddWebPart metody přidat ovládací prvek do kolekce všech WebPart ovládacích prvků na stránce, na které odkazuje WebParts vlastnost.

Poznámky pro dědice

Tuto metodu lze přepsat tak, aby používala odvozenou GenericWebPart třídu místo základní třídy poskytované pomocí sady ovládacích částí webových částí.

Platí pro

Viz také