WebPartCollection Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Contiene una colección de controles WebPart utilizados para realizar un seguimiento y administrar grupos de controles relacionados. Esta clase no puede heredarse.
public ref class WebPartCollection sealed : System::Collections::ReadOnlyCollectionBase
public sealed class WebPartCollection : System.Collections.ReadOnlyCollectionBase
type WebPartCollection = class
inherit ReadOnlyCollectionBase
Public NotInheritable Class WebPartCollection
Inherits ReadOnlyCollectionBase
- Herencia
Ejemplos
En el ejemplo de código siguiente se muestra el uso del WebPartCollection objeto en una página de elementos web. Este ejemplo tiene tres partes:
Código de la página en una clase parcial.
Página web que contiene los controles.
Descripción de cómo funciona el ejemplo en un explorador.
La primera parte del ejemplo de código contiene el código de la página en una clase parcial. Tenga en cuenta que el Button1_Click
método crea un WebPartCollection objeto que consta de todos los WebPart controles a los que se hace referencia en la WebPartManager.WebParts propiedad , que incluye todos los WebPart controles de la página. El método recorre en iteración todos los controles y alterna la propiedad de ChromeState cada control, que determina si ese control es normal o minimizado.
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class webpartcollectioncs : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
WebPartCollection partCollection = mgr1.WebParts;
foreach (WebPart part in partCollection)
{
if (part.ChromeState != PartChromeState.Minimized)
part.ChromeState = PartChromeState.Minimized;
else
part.ChromeState = PartChromeState.Normal;
}
}
protected void Button2_Click(object sender, EventArgs e)
{
WebPartCollection partCollection = WebPartZone1.WebParts;
if (partCollection[0].Title == "My Link List")
partCollection[0].Title = "Favorite Links";
else
partCollection[0].Title = "My Link List";
}
}
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Partial Public Class webpartcollectionvb
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim partCollection As WebPartCollection = mgr1.WebParts
Dim part As WebPart
For Each part In partCollection
If part.ChromeState <> PartChromeState.Minimized Then
part.ChromeState = PartChromeState.Minimized
Else
part.ChromeState = PartChromeState.Normal
End If
Next
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim partCollection As WebPartCollection = WebPartZone1.WebParts
If partCollection(0).Title = "My Link List" Then
partCollection(0).Title = "Favorite Links"
Else
partCollection(0).Title = "My Link List"
End If
End Sub
End Class
La segunda parte del ejemplo de código es la página web que contiene los controles. Tenga en cuenta que los controles declarados en WebPartZone1
son controles de servidor estándar ASP.NET, pero porque se encapsulan como GenericWebPart controles en tiempo de ejecución y la GenericWebPart clase hereda de la WebPart clase , los controles se tratan automáticamente como WebPart controles en tiempo de ejecución y, por lo tanto, se incluyen en el WebPartCollection objeto .
<%@ Page Language="C#"
Codefile="webpartcollection.cs"
Inherits="webpartcollectioncs" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr1" runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
ID="BulletedList1"
Runat="server"
DisplayMode="HyperLink"
Title="Favorite Links" >
<asp:ListItem Value="http://msdn.microsoft.com">
MSDN
</asp:ListItem>
<asp:ListItem Value="http://www.asp.net">
ASP.NET
</asp:ListItem>
<asp:ListItem Value="http://www.msn.com">
MSN
</asp:ListItem>
</asp:BulletedList>
<br />
<asp:Calendar ID="Calendar1" runat="server"
Title="My Calendar" />
</ZoneTemplate>
</asp:WebPartZone>
</div>
<hr />
<asp:Button ID="Button1" runat="server" Width="200"
Text="Toggle ChromeState" OnClick="Button1_Click" />
<br />
<asp:Button ID="Button2" runat="server" Width="200"
Text="Toggle BulletedList1 Title"
OnClick="Button2_Click"/>
</form>
</body>
</html>
<%@ Page Language="vb"
Codefile="webpartcollection.vb"
Inherits="webpartcollectionvb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr1" runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
ID="BulletedList1"
Runat="server"
DisplayMode="HyperLink"
Title="Favorite Links" >
<asp:ListItem Value="http://msdn.microsoft.com">
MSDN
</asp:ListItem>
<asp:ListItem Value="http://www.asp.net">
ASP.NET
</asp:ListItem>
<asp:ListItem Value="http://www.msn.com">
MSN
</asp:ListItem>
</asp:BulletedList>
<br />
<asp:Calendar ID="Calendar1" runat="server"
Title="My Calendar" />
</ZoneTemplate>
</asp:WebPartZone>
</div>
<hr />
<asp:Button ID="Button1" runat="server" Width="200"
Text="Toggle ChromeState" OnClick="Button1_Click" />
<br />
<asp:Button ID="Button2" runat="server" Width="200"
Text="Toggle BulletedList1 Title"
OnClick="Button2_Click"/>
</form>
</body>
</html>
Después de cargar la página en un explorador y hacer clic en el botón Alternar ChromeState , el código de la clase parcial recorre el WebPartCollection objeto y, alternativamente, minimiza los controles o los devuelve a la normalidad. O bien, si hace clic repetidamente en el botón Toggle BulletedList1 Title ,el título del control superior se cambia a valores alternativos.
Comentarios
La WebPartCollection clase es una colección de solo lectura de controles, que normalmente usan WebPartZoneBase los controles y WebPartManager para administrar conjuntos de WebPart controles.
Un WebPartManager control usa un WebPartCollection objeto para mantener una lista de todos los WebPart controles de una página, mientras que un WebPartZoneBase control usa un WebPartCollection objeto para realizar un seguimiento de los WebPart controles que contiene.
Nota
La WebPartCollection colección contiene WebPart controles y otros controles de servidor (como controles de usuario, controles personalizados y controles ASP.NET) que se colocan en WebPartZoneBase zonas y se usan como parte de las aplicaciones de elementos web. Por ejemplo, si tiene una WebPartZone zona en una página y, dentro de ella, declara un control personalizado WebPart y el control ASP.NET Calendar , ambos controles estarán en la WebPartCollection colección a la que hace referencia la WebParts propiedad .
El WebPartCollection objeto existe para que el conjunto de controles de elementos web pueda funcionar con colecciones fuertemente tipadas. De forma similar, si desea realizar operaciones masivas en un conjunto de WebPart controles, puede obtener una referencia a un WebPartCollection objeto mediante la WebParts propiedad . Por ejemplo, es posible que quiera recorrer en bucle todos los WebPart controles de una página y cambiar su apariencia de alguna manera. Aunque el WebPartCollection objeto es de solo lectura, puede realizar cambios mediante programación en las propiedades de los controles subyacentes a los que se hace referencia en la colección.
Constructores
WebPartCollection() |
Inicializa una nueva instancia vacía de la clase WebPartCollection. |
WebPartCollection(ICollection) |
Inicializa una nueva instancia de un objeto WebPartCollection pasando como parámetro una colección ICollection de controles WebPart. |
Propiedades
Count |
Obtiene el número de elementos contenidos en la instancia de ReadOnlyCollectionBase. (Heredado de ReadOnlyCollectionBase) |
InnerList |
Obtiene la lista de elementos incluidos en la instancia de ReadOnlyCollectionBase. (Heredado de ReadOnlyCollectionBase) |
Item[Int32] |
Devuelve un miembro de la colección según su posición en la colección. |
Item[String] |
Devuelve un miembro de la colección correspondiente a un identificador de cadena único. |
Métodos
Contains(WebPart) |
Obtiene un valor que indica si un control determinado existe en la colección. |
CopyTo(WebPart[], Int32) |
Copia la colección en una matriz de objetos WebPart. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetEnumerator() |
Devuelve un enumerador que recorre en iteración la instancia de ReadOnlyCollectionBase. (Heredado de ReadOnlyCollectionBase) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
IndexOf(WebPart) |
Devuelve la posición de un miembro determinado de la colección. |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
ICollection.CopyTo(Array, Int32) |
Copia la totalidad de ReadOnlyCollectionBase en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino. (Heredado de ReadOnlyCollectionBase) |
ICollection.IsSynchronized |
Obtiene un valor que indica si el acceso a un objeto ReadOnlyCollectionBase está sincronizado (es seguro para subprocesos). (Heredado de ReadOnlyCollectionBase) |
ICollection.SyncRoot |
Obtiene un objeto que se puede utilizar para sincronizar el acceso a un objeto ReadOnlyCollectionBase. (Heredado de ReadOnlyCollectionBase) |
Métodos de extensión
Cast<TResult>(IEnumerable) |
Convierte los elementos de IEnumerable en el tipo especificado. |
OfType<TResult>(IEnumerable) |
Filtra los elementos de IEnumerable en función de un tipo especificado. |
AsParallel(IEnumerable) |
Habilita la paralelización de una consulta. |
AsQueryable(IEnumerable) |
Convierte una interfaz IEnumerable en IQueryable. |