WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die programmgesteuerte Standardmethode zum Hinzufügen von WebPart-Steuerelementen auf einer Webseite bereit.
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
Parameter
- webPart
- WebPart
Der WebPart (bzw. das Server- oder Benutzersteuerelement), der einer Webseite hinzugefügt oder auf einer Seite geöffnet werden soll.
- zone
- WebPartZoneBase
Die WebPartZoneBase, der webPart
hinzugefügt wird.
- zoneIndex
- Int32
Eine ganze Zahl, die die Ordinalposition darstellt, an der sich webPart
in zone
im Verhältnis zu anderen Steuerelementen in zone
befindet.
Gibt zurück
Ein WebPart-Steuerelement, das der Seite hinzugefügt wurde.
Ausnahmen
zone
wird nicht in der Auflistung der Zonen des WebPartManager-Steuerelements registriert.
- oder -
webPart
befindet sich bereits in zone
.
Der Wert von zoneIndex
beträgt weniger als 0 (null).
Beispiele
Das folgende Codebeispiel veranschaulicht die Verwendung der AddWebPart -Methode zum programmgesteuerten Hinzufügen eines Serversteuerelements zu einer Seite. Das Seitenmarkup enthält ein leeres <asp:webpartzone>
Element und ein <asp:webpartmanager>
Element. Wenn zum ersten Mal auf die Schaltfläche Kalender hinzufügen geklickt wird, erstellt der Code im Ereignishandler ein Calendar Steuerelement und fügt es einer Zone als GenericWebPart Objekt hinzu, wobei die AddWebPart -Methode aufgerufen wird.
<%@ 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>
Hinweise
Die AddWebPart -Methode wird sowohl zum Hinzufügen neuer dynamischer WebPart Steuerelemente zu einer Seite als auch zum erneuten Öffnen von statischen oder dynamischen Steuerelementen verwendet, die zuvor auf einer Seite geschlossen wurden. Wenn die -Methode aufgerufen wird, um ein neues Steuerelement hinzuzufügen, erstellt sie tatsächlich eine Kopie des Steuerelements, auf das webPart
im Parameter verwiesen wird. Für die Kopie des Steuerelements wird eine neue ID generiert. Daher sollten Entwickler auf das von der WebPart -Methode zurückgegebene Steuerelement verweisen, um den neuen ID-Wert abzurufen. Wenn die -Methode aufgerufen wird, um ein zuvor geschlossenes Steuerelement erneut zu öffnen, gibt sie einen direkten Verweis auf das Steuerelement zurück, auf das der webPart
-Parameter verweist.
Wichtig
Sie sollten immer die AddWebPart -Methode anstelle der Add -Methode der Auflistung von Steuerelementen verwenden, auf die von der WebPartManager.Controls -Eigenschaft verwiesen wird, um der Seite programmgesteuert Steuerelemente hinzuzufügen WebPart , da die Verwendung der Add -Methode eine Ausnahme auslöst. Um ein Steuerelement hinzuzufügen, das kein WebPart Steuerelement ist (d. h. ein Serversteuerelement, das zur Laufzeit mit einem GenericWebPart Steuerelement umschlossen wird), sollten Sie zuerst die CreateWebPart -Methode zum Erstellen des Steuerelements aufrufen und dann die AddWebPart -Methode aufrufen, um das Steuerelement hinzuzufügen. Eine Demonstration dieses Ansatzes finden Sie im Abschnitt Beispiel.