WebPartManager.WebParts Eigenschaft
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.
Ruft einen Verweis auf alle vom WebPart-Steuerelement auf einer Webseite nachverfolgten WebPartManager-Steuerelemente ab.
public:
property System::Web::UI::WebControls::WebParts::WebPartCollection ^ WebParts { System::Web::UI::WebControls::WebParts::WebPartCollection ^ get(); };
[System.ComponentModel.Browsable(false)]
public System.Web.UI.WebControls.WebParts.WebPartCollection WebParts { get; }
[<System.ComponentModel.Browsable(false)>]
member this.WebParts : System.Web.UI.WebControls.WebParts.WebPartCollection
Public ReadOnly Property WebParts As WebPartCollection
Eigenschaftswert
Eine WebPartCollection, die Verweise auf einen Satz von WebPart-Steuerelementen enthält.
- Attribute
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die WebParts -Eigenschaft programmgesteuert für den Zugriff auf einzelne WebPart Steuerelemente verwendet wird. Beachten Sie, dass im deklarativen Markup für die Webseite innerhalb des <asp:webpartzone>
Elements zwei Standard-ASP.NET Serversteuerelemente vorhanden sind. Diese erben zwar nicht von der WebPart -Klasse, da sie sich jedoch in einer Zone befinden, werden sie zur Laufzeit mit einem GenericWebPart -Objekt umschlossen und somit in die Auflistung eingeschlossen, auf die von der WebParts -Eigenschaft verwiesen wird. Sie können in dieser Zone auch benutzerdefinierte WebPart Steuerelemente, Benutzersteuerelemente oder benutzerdefinierte Serversteuerelemente hinzufügen, die auf die gleiche Weise behandelt werden.
<%@ 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 Button1_Click(object sender, EventArgs e)
{
Label1.Text = "WebPart count: " +
WebPartManager1.WebParts.Count.ToString();
}
protected void Button2_Click(object sender, EventArgs e)
{
WebPartManager1.WebParts["Calendar1"].ChromeType =
PartChromeType.BorderOnly;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<!-- Reference the WebPartManager control. -->
<asp:WebPartManager ID="WebPartManager1" runat="server" />
<div>
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
DisplayMode="HyperLink"
ID="BulletedList1"
runat="server"
Title="My Links"
ExportMode="All">
<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>
<asp:Calendar ID="Calendar1" runat="server"
Title="My Calendar" />
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<asp:Button ID="Button1" runat="server"
Text="WebPart Count"
OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server"
Text="Hide Calendar Title"
OnClick="Button2_Click" />
<br />
<asp:Label ID="Label1" runat="server" text="" />
</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 Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
Label1.Text = "WebPart count: " & _
WebPartManager1.WebParts.Count.ToString()
End Sub
Protected Sub Button2_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
WebPartManager1.WebParts("Calendar1").ChromeType = _
PartChromeType.BorderOnly
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<!-- Reference the WebPartManager control. -->
<asp:WebPartManager ID="WebPartManager1" runat="server" />
<div>
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
DisplayMode="HyperLink"
ID="BulletedList1"
runat="server"
Title="My Links"
ExportMode="All">
<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>
<asp:Calendar ID="Calendar1" runat="server"
Title="My Calendar" />
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<asp:Button ID="Button1" runat="server"
Text="WebPart Count"
OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server"
Text="Hide Calendar Title"
OnClick="Button2_Click" />
<br />
<asp:Label ID="Label1" runat="server" text="" />
</div>
</form>
</body>
</html>
Damit das Codebeispiel funktioniert, müssen Sie in der Web.config-Datei eine Einstellung hinzufügen, um das Exportieren von Webparts-Beschreibungsdateien zu ermöglichen. Stellen Sie sicher, dass sie über eine Web.config Datei im selben Verzeichnis wie die Webseite für dieses Codebeispiel verfügen.
<system.web>
Stellen Sie im Abschnitt sicher, dass ein <webParts>
Element mit einem enableExport
Attribut auf true
festgelegt ist, wie im folgenden Markup.
<webParts enableExport="true">
...
</webParts>
Wenn Sie nach dem Laden der Seite in einen Browser auf die Schaltfläche WebPartanzahl klicken, verwendet der Code die WebParts -Eigenschaft, um die Anzahl der Steuerelemente in der Auflistung zurückzugeben. Wenn Sie auf die Schaltfläche Kalendertitel ausblenden klicken, ändert der Code den Kalender so, dass er nur mit einem Rahmen und nicht mit einem Titel gerendert wird.
Hinweise
Die WebParts -Eigenschaft wird vom WebPartManager -Steuerelement verwendet, um alle WebPart Steuerelemente nachzuverfolgen, die in WebPartZoneBase Zonen auf der Seite enthalten sind. Obwohl die Sammlung schreibgeschützt ist, können Sie über die Sammlung auf einzelne WebPart Steuerelemente zugreifen und programmgesteuert Änderungen daran vornehmen.
Hinweis
Es ist möglich, ein WebPart Steuerelement auf einer Seite außerhalb einer WebPartZone Zone zu platzieren, was dazu führt, dass das Steuerelement nicht vom WebPartManager Steuerelement nachverfolgt oder in seiner WebParts Auflistung darauf verwiesen wird. Es gibt jedoch wenig Grund, ein WebPart Steuerelement außerhalb einer Zone zu verwenden, da es dann seine Webparts-Funktionalität verliert und als normales Serversteuerelement fungiert.
Jede Art von Steuerelement, das in einer Zone platziert werden kann, unabhängig davon, ob ein benutzerdefiniertes WebPart Steuerelement, ein Standard-ASP.NET-Steuerelement, ein Benutzersteuerelement oder ein benutzerdefiniertes Serversteuerelement, kann zur Laufzeit als WebPart Steuerelement behandelt werden. Wenn ein Steuerelement, das kein WebPart Steuerelement ist, in einer WebPartZone Zone platziert wird, umschließt ASP.NET das Steuerelement zur Laufzeit mit einem GenericWebPart -Objekt, sodass sich das Steuerelement als echtes WebPart Steuerelement verhalten kann. Daher kann das WebPartManager Steuerelement mithilfe der WebParts -Eigenschaft jede Art von Serversteuerelement nachverfolgen, unabhängig davon, ob es von der WebPart -Klasse abgeleitet wird.