Aracılığıyla paylaş


WebPartManager.CreateWebPart(Control) Yöntem

Tanım

Denetimin Web Bölümleri işlevselliğine sahip olabilmesi için, denetim olmayan WebPart bir sunucu denetimini bir GenericWebPart nesneyle sarmalar.

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

Parametreler

control
Control

Denetim olmayan bir WebPart sunucu denetimi.

Döndürülenler

Sarmalayan GenericWebPartcontrol ve gerçek WebPart bir denetim olarak çalışmasını sağlayan bir.

Örnekler

Aşağıdaki kod örneğinde yönteminin kullanımı gösterilmektedir CreateWebPart . Button2_Click methodiçinde, CreateWebPart bir denetimi bölgeye eklemeden önce bir CalendarGenericWebPart nesneyle sarmalama yöntemi çağrılır.

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

Açıklamalar

CreateWebPart yöntemi, denetim olmayan WebPart sunucu denetimlerinin bir WebPart denetimle aynı işlevi üstlenmesine ve dolayısıyla Web Bölümleri uygulamalarına tam olarak katılmasına olanak tanıyan ana mekanizmadır. Geliştiriciler bu yöntemi kullanarak Web Bölümleri uygulamasında kullanabilecekleri sunucu denetimlerinin sayısını büyük ölçüde genişletirler çünkü standart ASP.NET denetimleri, kullanıcı denetimleri ve özel denetimler gibi hemen her tür sunucu denetimi kullanılabilir.

Denetim WebPartManager , sunucu denetimlerini bir GenericWebPart nesneyle sarmalama amacıyla diğer iki senaryoda da bu yöntemi kullanır. Kullanıcılar denetimi kullanarak ImportCatalogPart bir sayfaya sunucu denetimleri eklediğinde, içeri aktarılan denetim bir WebPart denetim değilse yöntemi CreateWebPart çağrılır. Ayrıca, sunucu denetimleri Web sayfasındaki bir WebPartZoneBase bölge içinde kalıcılık biçiminde bildirildiğinde, CreateWebPart denetim olmayan WebPart tüm denetimler için yöntemi çağrılır.

Bir bölgeye program aracılığıyla bir sunucu denetimi eklediğinizde, tipik bir yaklaşım, denetimi bir nesneyle sarmalama yöntemini kullanmak CreateWebPart ve ardından denetimi sayfadaki özelliği tarafından başvurulan tüm WebPart denetimlerin koleksiyonuna eklemek için yöntemini çağırmaktır AddWebPartWebParts.GenericWebPart

Devralanlara Notlar

Bu yöntem, Web Bölümleri denetim kümesiyle sağlanan temel sınıf yerine türetilmiş GenericWebPart bir sınıf kullanmak için geçersiz kılınabilir.

Şunlara uygulanır

Ayrıca bkz.