WebPartManager.WebParts Proprietà

Definizione

Ottiene un riferimento a tutti i controlli WebPart registrati dal controllo WebPartManager 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à

Classe WebPartCollection che contiene riferimenti a un gruppo di controlli WebPart.

Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come usare 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 di ASP.NET standard. Anche se questi non ereditano dalla WebPart classe, perché si trovano in una zona in cui verranno eseguito il wrapping con 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 verranno gestiti allo 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 abilitare l'esportazione dei file di descrizione web part. Assicurarsi di avere un file Web.config nella stessa directory della pagina Web per questo esempio di codice. All'interno della <system.web> sezione assicurarsi 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 nella raccolta. 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 un titolo.

Commenti

La WebParts proprietà viene usata 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 a singoli WebPart controlli tramite la raccolta e apportare modifiche a livello di codice.

Nota

È possibile avere un WebPart controllo posizionato in una pagina esterna a una WebPartZone zona, che comporta che il WebPartManager controllo non venga monitorato dal controllo o fatto 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 normale controllo server.

Qualsiasi tipo di controllo che può essere inserito in un'area, 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 WebPart un controllo in fase di esecuzione. Quando un controllo che non è un WebPart controllo viene inserito in un WebPartZone fuso, in fase di esecuzione ASP.NET esegue il wrapping del controllo con un GenericWebPart oggetto, in modo che il controllo possa comportarsi come un vero WebPart controllo. Pertanto, usando la WebParts proprietà, il WebPartManager controllo può tenere traccia di qualsiasi tipo di controllo server, indipendentemente dal fatto che deriva dalla WebPart classe .

Si applica a