Udostępnij za pośrednictwem


WebPartManager.WebParts Właściwość

Definicja

Pobiera odwołanie do wszystkich WebPart kontrolek śledzonych przez kontrolkę WebPartManager na stronie sieci 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

Wartość właściwości

WebPartCollection

Element WebPartCollection zawierający odwołania do zestawu WebPart kontrolek.

Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak programowo używać właściwości do uzyskiwania WebParts dostępu do poszczególnych WebPart kontrolek. Zwróć uwagę, że w deklaratywnej adiustacji dla strony sieci Web w elemecie <asp:webpartzone> znajdują się dwa standardowe kontrolki serwera ASP.NET. Chociaż nie dziedziczą one z WebPart klasy, ponieważ znajdują się w strefie, będą one opakowane obiektem w czasie wykonywania, a tym samym zostaną uwzględnione w kolekcji przywołyniętej GenericWebPart WebParts przez właściwość. W tej strefie można również dodać kontrolki niestandardowe WebPart , kontrolki użytkownika lub niestandardowe kontrolki serwera. Będą one obsługiwane w taki sam sposób.

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

Należy pamiętać, że aby przykładowy kod działał, należy dodać ustawienie w pliku Web.config, aby umożliwić eksportowanie plików opisu składniki Web Part. Upewnij się, że masz plik Web.config w tym samym katalogu co strona sieci Web dla tego przykładu kodu. <system.web> W sekcji upewnij się, że istnieje <webParts> element z atrybutem ustawionym enableExport na true, jak w poniższym znaczniku.

<webParts enableExport="true">

...

</webParts>

Po załadowaniu strony do przeglądarki po kliknięciu przycisku Liczba składników Web Part kod używa WebParts właściwości , aby zwrócić liczbę kontrolek w kolekcji. Po kliknięciu przycisku Ukryj tytuł kalendarza kod zmieni kalendarz tak, aby był renderowany tylko za pomocą obramowania, a nie tytułu.

Uwagi

Właściwość WebParts jest używana przez kontrolkę WebPartManager do śledzenia wszystkich WebPart kontrolek zawartych w WebPartZoneBase strefach na stronie. Mimo że kolekcja jest tylko do odczytu, można uzyskiwać dostęp do poszczególnych WebPart kontrolek za pośrednictwem kolekcji i wprowadzać zmiany w nich programowo.

Uwaga

Można mieć kontrolkę umieszczoną WebPart na stronie poza strefą WebPartZone , co powoduje, że kontrolka nie jest śledzona przez WebPartManager kontrolkę lub odwołuje się do niej w swojej WebParts kolekcji. Jednak nie ma powodu, aby użyć WebPart kontrolki poza strefą, ponieważ następnie traci składniki Web Part funkcjonalność i działa jako normalna kontrola serwera.

Dowolny typ kontrolki, który można umieścić w strefie, niezależnie od tego, czy kontrolka niestandardowaWebPart, standardowa ASP.NET kontrolka, kontrolka użytkownika, czy niestandardowa kontrolka serwera, może być traktowana jako WebPart kontrolka w czasie wykonywania. Gdy kontrolka, która nie jest kontrolką WebPart WebPartZone, znajduje się w strefie, w czasie wykonywania ASP.NET opakowuje kontrolkę obiektemGenericWebPart, aby kontrolka mogła zachowywać się jako prawdziwa WebPart kontrolka. W związku z tym za pomocą właściwości WebPartManager kontrolka WebParts może śledzić dowolny typ kontrolki serwera, niezależnie od tego, czy pochodzi z WebPart klasy.

Dotyczy