WebPartManager.WebParts Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un riferimento a tutti i WebPart controlli rilevati dal WebPartManager controllo in una pagina Web.
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
Valore della proprietà
Oggetto WebPartCollection che contiene riferimenti a un set di WebPart controlli.
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato come utilizzare la WebParts proprietà a livello di codice per accedere ai singoli WebPart controlli. Si noti che nel markup dichiarativo per la pagina Web, all'interno dell'elemento <asp:webpartzone> sono presenti due controlli server ASP.NET standard. Anche se questi non ereditano dalla WebPart classe , perché si trovano in una zona, verranno inclusi in un GenericWebPart oggetto in fase di esecuzione e quindi verranno inclusi nell'insieme a cui fa riferimento la WebParts proprietà . È anche possibile aggiungere controlli personalizzati, controlli utente o controlli server personalizzati WebPart in questa zona e gestirli nello stesso modo.
<%@ 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>
Si noti che per il funzionamento dell'esempio di codice, è necessario aggiungere un'impostazione nel file Web.config per consentire l'esportazione dei file di descrizione delle web part. Assicurarsi di disporre di un file Web.config nella stessa directory della pagina Web per questo esempio di codice. All'interno della <system.web> sezione verificare che sia presente un elemento con un <webParts>enableExport attributo impostato su true, come nel markup seguente.
<webParts enableExport="true">
...
</webParts>
Dopo aver caricato la pagina in un browser, se si fa clic sul pulsante Conteggio WebPart , il codice usa la WebParts proprietà per restituire il conteggio dei controlli nell'insieme. Se si fa clic sul pulsante Nascondi titolo calendario , il codice modifica il calendario in modo che venga eseguito il rendering solo con un bordo e non con un titolo.
Commenti
La WebParts proprietà viene utilizzata dal WebPartManager controllo per tenere traccia di tutti i WebPart controlli contenuti nelle WebPartZoneBase zone della pagina. Anche se la raccolta è di sola lettura, è possibile accedere ai singoli WebPart controlli tramite la raccolta e apportare modifiche a tali controlli a livello di codice.
Annotazioni
È possibile che un WebPart controllo sia posizionato in una pagina all'esterno di una WebPartZone zona, il che comporta che il controllo non venga rilevato dal WebPartManager controllo o a cui si fa riferimento nella raccolta WebParts . Tuttavia, c'è poco motivo per usare un WebPart controllo all'esterno di una zona, perché quindi perde la funzionalità web part e funge da controllo server normale.
Qualsiasi tipo di controllo che può essere inserito in una zona, indipendentemente dal fatto che un controllo personalizzato WebPart , un controllo ASP.NET standard, un controllo utente o un controllo server personalizzato, possa essere considerato come un WebPart controllo in fase di esecuzione. Quando un controllo che non è un WebPart controllo viene posizionato in un'area WebPartZone , in fase di esecuzione ASP.NET esegue il wrapping del controllo con un GenericWebPart oggetto , in modo che il controllo possa comportarsi come un controllo vero WebPart . Pertanto, utilizzando la WebParts proprietà , il WebPartManager controllo può tenere traccia di qualsiasi tipo di controllo server, indipendentemente dal fatto che derivi dalla WebPart classe .