WebPartManager.CreateWebPart(Control) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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 method
iç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.