WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tillhandahåller den programmatiska standardmetoden för att lägga till WebPart kontroller på en webbsida.
public:
System::Web::UI::WebControls::WebParts::WebPart ^ AddWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart, System::Web::UI::WebControls::WebParts::WebPartZoneBase ^ zone, int zoneIndex);
public System.Web.UI.WebControls.WebParts.WebPart AddWebPart(System.Web.UI.WebControls.WebParts.WebPart webPart, System.Web.UI.WebControls.WebParts.WebPartZoneBase zone, int zoneIndex);
member this.AddWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> System.Web.UI.WebControls.WebParts.WebPart
Public Function AddWebPart (webPart As WebPart, zone As WebPartZoneBase, zoneIndex As Integer) As WebPart
Parametrar
- webPart
- WebPart
Den WebPart (eller server- eller användarkontroll) som ska läggas till på en webbsida eller öppnas på en sida.
- zone
- WebPartZoneBase
Det WebPartZoneBase som webPart läggs till.
- zoneIndex
- Int32
Ett heltal som representerar den ordningsposition som webPart upptar i , i zoneförhållande till andra kontroller i zone.
Returer
En WebPart kontroll som lades till på sidan.
Undantag
zone är inte registrerad i WebPartManager kontrollens samling av zoner.
-eller-
webPart finns redan i zone.
Värdet zoneIndex för är mindre än noll.
Exempel
Följande kodexempel visar hur metoden används AddWebPart för att lägga till en serverkontroll programmatiskt på en sida. Sidmarkeringen innehåller ett tomt <asp:webpartzone> element och ett <asp:webpartmanager> element. Första gången knappen Lägg till kalender klickas skapar koden i händelsehanteraren en Calendar kontroll och lägger till den i en zon som ett GenericWebPart objekt och anropar AddWebPart metoden.
<%@ 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>
Kommentarer
Metoden AddWebPart används både för att lägga till nya dynamiska WebPart kontroller på en sida och för att öppna statiska eller dynamiska kontroller som tidigare har stängts på en sida. När metoden anropas för att lägga till en ny kontroll skapas faktiskt en kopia av kontrollen som refereras i parametern webPart . Ett nytt ID genereras för kopian av kontrollen, så utvecklare bör referera till kontrollen WebPart som returneras från metoden för att hämta det nya ID-värdet. När metoden anropas för att öppna en tidigare stängd kontroll igen returneras en direkt referens till den kontroll som refereras av parametern webPart .
Important
Du bör alltid använda AddWebPart metoden, i stället Add för metoden för den samling kontroller som refereras av WebPartManager.Controls egenskapen, för att lägga WebPart till kontroller programmatiskt på sidan, eftersom användning av Add metoden genererar ett undantag. Om du vill lägga till en kontroll som inte är en WebPart kontroll (med andra ord en serverkontroll som kommer att omslutas med en GenericWebPart kontroll vid körning) bör du först anropa CreateWebPart metoden för att skapa kontrollen och sedan anropa AddWebPart metoden för att lägga till kontrollen. En demonstration av den här metoden finns i avsnittet Exempel.