WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje standardní programovou metodu pro přidání WebPart ovládacích prvků na webovou stránku.
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
Parametry
- webPart
- WebPart
Ovládací WebPart prvek (nebo server nebo uživatel), který se má přidat na webovou stránku nebo otevřít na stránce.
- zone
- WebPartZoneBase
Ten WebPartZoneBase , do kterého webPart
se přidává.
- zoneIndex
- Int32
Celé číslo, které představuje řadovou pozici, která webPart
zabírá v , vzhledem k jiným ovládacím prvkům v zone
zone
.
Návraty
Ovládací WebPart prvek, který byl přidán na stránku.
Výjimky
zone
není zaregistrovaný v kolekci WebPartManager zón ovládacího prvku.
-nebo-
webPart
je již v zone
systému .
Hodnota zoneIndex
je menší než nula.
Příklady
Následující příklad kódu ukazuje použití AddWebPart metody k programovému přidání serverového ovládacího prvku na stránku. Značka stránky obsahuje prázdný <asp:webpartzone>
prvek a <asp:webpartmanager>
element. Při prvním kliknutí na tlačítko Přidat kalendář vytvoří kód v obslužné rutině události ovládací prvek Calendar a přidá ho do zóny jako GenericWebPart objekt, který volá metodu AddWebPart .
<%@ 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 AddWebPart se používá k přidání nových dynamických WebPart ovládacích prvků na stránku a k opětovnému otevření statických nebo dynamických ovládacích prvků, které byly dříve na stránce uzavřeny. Při volání metody pro přidání nového ovládacího prvku ve skutečnosti vytvoří kopii ovládacího prvku odkazovaného v parametru webPart
. Pro kopii ovládacího prvku se vygeneruje nové ID, takže vývojáři by měli odkazovat na WebPart ovládací prvek vrácený metodou, aby získali novou hodnotu ID. Při volání metody znovu otevřít dříve uzavřený ovládací prvek, vrátí přímý odkaz na ovládací prvek odkazovaný parametrem webPart
.
Důležité
K programovému AddWebPart přidání WebPart ovládacích prvků na stránku byste měli vždy použít metodu, nikoli metodu Add kolekce ovládacích prvků, na kterou WebPartManager.Controls odkazuje vlastnost, protože použití Add metody vyvolá výjimku. Chcete-li přidat ovládací prvek, který není ovládací prvek WebPart (jinými slovy, serverový ovládací prvek, který bude za běhu zabalen s ovládacím GenericWebPart prvek), měli byste nejprve volat metodu CreateWebPart k vytvoření ovládacího prvku a pak volat metodu AddWebPart pro přidání ovládacího prvku. Ukázku tohoto přístupu najdete v části Příklad.