Partilhar via


WebPartManager.WebParts Propriedade

Definição

Obtém uma referência a todos os controles WebPart rastreados pelo controle WebPartManager em uma página da 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

Valor da propriedade

Uma WebPartCollection que contém referências a um conjunto de controles WebPart.

Atributos

Exemplos

O exemplo de código a seguir demonstra como usar a WebParts propriedade programaticamente para acessar controles individuais WebPart . Observe que, na marcação declarativa da página da Web, dentro do <asp:webpartzone> elemento há dois controles de servidor padrão ASP.NET. Embora elas não herdem da WebPart classe , pois estão em uma zona, elas serão encapsuladas com um GenericWebPart objeto em tempo de execução e, portanto, serão incluídas na coleção referenciada pela WebParts propriedade . Você também pode adicionar controles personalizados WebPart , controles de usuário ou controles de servidor personalizados nessa zona e eles seriam tratados da mesma maneira.

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

Observe que, para que o exemplo de código funcione, você deve adicionar uma configuração no arquivo Web.config para habilitar a exportação de arquivos de descrição de Web Parts. Verifique se você tem um arquivo Web.config no mesmo diretório que a página da Web para este exemplo de código. <system.web> Na seção , verifique se há um <webParts> elemento com um enableExport atributo definido truecomo , como na marcação a seguir.

<webParts enableExport="true">

...

</webParts>

Depois de carregar a página em um navegador, se você clicar no botão Contagem de WebPart , o código usará a WebParts propriedade para retornar a contagem de controles na coleção. Se você clicar no botão Ocultar Título do Calendário , o código alterará o calendário para que ele seja renderizado apenas com uma borda e não com um título.

Comentários

A WebParts propriedade é usada pelo WebPartManager controle para rastrear todos os WebPart controles contidos WebPartZoneBase em zonas na página. Embora a coleção seja somente leitura, você pode acessar controles individuais WebPart por meio da coleção e fazer alterações neles programaticamente.

Observação

É possível ter um WebPart controle colocado em uma página fora de uma WebPartZone zona, o que faz com que o controle não seja rastreado pelo WebPartManager controle ou referenciado em sua WebParts coleção. No entanto, há pouca razão para usar um WebPart controle fora de uma zona, pois ele perde sua funcionalidade de Web Parts e atua como um controle de servidor normal.

Qualquer tipo de controle que possa ser colocado em uma zona, seja um controle personalizado WebPart , um controle de ASP.NET padrão, um controle de usuário ou um controle de servidor personalizado, pode ser tratado como um WebPart controle em tempo de execução. Quando um controle que não é um WebPart controle é colocado em uma WebPartZone zona, em tempo de execução ASP.NET encapsula o controle com um GenericWebPart objeto, para que o controle possa se comportar como um controle verdadeiro WebPart . Portanto, usando a WebParts propriedade , o WebPartManager controle pode controlar qualquer tipo de controle de servidor, independentemente de derivar da WebPart classe .

Aplica-se a