WebPartManager.WebParts Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém uma referência a todos os WebPart controlos rastreados pelo WebPartManager controlo numa página 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 de Propriedade
A WebPartCollection que contém referências a um conjunto de WebPart controlos.
- Atributos
Exemplos
O exemplo de código seguinte demonstra como usar a WebParts propriedade programaticamente para aceder a controlos individuais WebPart . Note que na marcação declarativa da página Web, dentro do elemento <asp:webpartzone> existem dois controlos padrão ASP.NET servidor. Embora estes não herdem da WebPart classe, por estarem numa zona, serão envoltos com um GenericWebPart objeto em tempo de execução e, por isso, serão incluídos na coleção referenciada pela WebParts propriedade. Também podes adicionar controlos personalizados WebPart , controlos de utilizador ou controlos personalizados de servidor nesta zona, e seriam tratados da mesma forma.
<%@ 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>
Note que, para o exemplo de código funcionar, deve adicionar uma definição no ficheiro Web.config para permitir a exportação de ficheiros de descrição de Web Parts. Certifique-se de que tem um ficheiro Web.config no mesmo diretório da página Web para este exemplo de código. Dentro da <system.web> secção, certifique-se de que existe um <webParts> elemento com um enableExport atributo definido como true, como na marcação seguinte.
<webParts enableExport="true">
...
</webParts>
Depois de carregar a página num navegador, se clicar no botão WebPart Count , o código usa a WebParts propriedade para devolver a contagem de controlos na coleção. Se clicar no botão Ocultar Título do Calendário , o código altera o calendário para que apareça apenas com uma borda e não com um título.
Observações
A WebParts propriedade é usada pelo WebPartManager controlo para rastrear todos WebPart os controlos contidos nas WebPartZoneBase zonas da página. Embora a coleção seja de apenas leitura, pode aceder a controlos individuais WebPart através da coleção e fazer alterações programaticamente a eles.
Note
É possível que um WebPart controlo seja colocado numa página fora de uma WebPartZone zona, o que faz com que o controlo não seja rastreado pelo WebPartManager controlo nem referenciado na sua WebParts coleção. No entanto, há pouca razão para usar um WebPart controlo fora de uma zona, pois perde a funcionalidade de Web Parts e atua como um controlo normal de servidor.
Qualquer tipo de controlo que possa ser colocado numa zona, seja um controlo personalizado WebPart, um controlo ASP.NET padrão, um controlo de utilizador ou um controlo personalizado de servidor, pode ser tratado como um controlo WebPart em tempo de execução. Quando um controlo que não é WebPart é colocado numa zona WebPartZone, em tempo de execução ASP.NET envolve o controlo com um objeto GenericWebPart, para que o controlo possa comportar-se como um verdadeiro controlo WebPart. Assim, ao usar a WebParts propriedade, o controlo WebPartManager pode rastrear qualquer tipo de controlo de servidor, independentemente de derivar ou não da WebPart classe.