WebPartManager.WebParts Egenskap

Definition

Hämtar en referens till alla WebPart kontroller som spåras av WebPartManager kontrollen på en webbsida.

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

Egenskapsvärde

En WebPartCollection som innehåller referenser till en uppsättning WebPart kontroller.

Attribut

Exempel

Följande kodexempel visar hur du använder WebParts egenskapen programmatiskt för att få åtkomst till enskilda WebPart kontroller. Observera att det finns två standardkontroller för ASP.NET server i elementet <asp:webpartzone> på webbsidans deklarativa markering för webbsidan. Även om dessa inte ärver från WebPart klassen, eftersom de finns i en zon, kommer de att omslutas med ett GenericWebPart objekt vid körning och kommer därför att ingå i samlingen som refereras av WebParts egenskapen. Du kan också lägga till anpassade WebPart kontroller, användarkontroller eller anpassade serverkontroller i den här zonen, och de skulle hanteras på samma sätt.

<%@ 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>

Observera att för att kodexemplet ska fungera måste du lägga till en inställning i Web.config-filen för att kunna exportera beskrivningsfiler för webbdelar. Kontrollera att du har en Web.config fil i samma katalog som webbsidan för det här kodexemplet. I avsnittet <system.web> kontrollerar du att det finns ett <webParts> element med ett enableExport attribut inställt på true, som i följande markering.

<webParts enableExport="true">

...

</webParts>

När du har läst in sidan i en webbläsare använder koden egenskapen för att returnera antalet kontroller i samlingen om du klickar på knappen WebParts. Om du klickar på knappen Dölj kalenderrubrik ändrar koden kalendern så att den återges med endast en kantlinje och inte en rubrik.

Kommentarer

Egenskapen WebParts används av WebPartManager kontrollen för att spåra alla WebPart kontroller som finns i WebPartZoneBase zoner på sidan. Även om samlingen är skrivskyddad kan du komma åt enskilda WebPart kontroller via samlingen och göra ändringar i dem programmatiskt.

Note

Det är möjligt att ha en WebPart kontroll placerad på en sida utanför en WebPartZone zon, vilket resulterar i att kontrollen inte spåras av WebPartManager kontrollen eller refereras till i dess WebParts samling. Det finns dock ingen anledning att använda en WebPart kontroll utanför en zon, eftersom den sedan förlorar sin webbdelsfunktion och fungerar som en normal serverkontroll.

Alla typer av kontroller som kan placeras i en zon, oavsett om en anpassad WebPart-kontroll, en standard-ASP.NET-kontroll, en användarkontroll eller en anpassad serverkontroll, kan behandlas som en WebPart kontroll vid körning. När en kontroll som inte är en WebPart-kontroll placeras i en WebPartZone zon, omsluter ASP.NET vid körning kontrollen med ett GenericWebPart-objekt, så att kontrollen kan fungera som en sann WebPart kontroll. Genom att använda WebParts egenskapen WebPartManager kan kontrollen därför spåra vilken typ av serverkontroll som helst, oavsett om den härleds från WebPart klassen.

Gäller för