WebPartCollection 类

定义

包含用于跟踪和管理相关控件组的 WebPart 控件的集合。 此类不能被继承。

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
继承
WebPartCollection

示例

下面的代码示例演示如何在 Web 部件页上使用 WebPartCollection 对象。 此示例包含三个部分:

  • 分部类中页面的代码。

  • 包含控件的网页。

  • 说明该示例在浏览器中的工作原理。

代码示例的第一部分包含分部类中页面的代码。 请注意, Button1_Click 方法创建一个 WebPartCollection 对象,该对象包含 属性中WebPartManager.WebParts引用的所有WebPart控件,其中包括页面上的所有WebPart控件。 方法循环访问所有控件,并切换每个控件的 ChromeState 属性,以确定该控件是正常控件还是最小化控件。

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

代码示例的第二部分是包含控件的网页。 请注意,中 WebPartZone1 声明的控件是标准 ASP.NET 服务器控件,但由于它们在运行时包装为 GenericWebPart 控件,并且 GenericWebPart 类继承自 WebPart 类,因此控件在运行时自动被视为 WebPart 控件,因此包含在 对象中 WebPartCollection

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

在浏览器中加载页面并单击“ 切换 ChromeState ”按钮后,分部类中的代码将循环访问 WebPartCollection 对象,并交替将控件最小化或使其恢复正常。 或者,如果反复单击“ 切换 BulletedList1 标题 ”按钮,则最上面的控件的标题将更改为备用值。

注解

WebPartCollection 是控件的只读集合,通常由 WebPartZoneBaseWebPartManager 控件用来管理控件集 WebPart

WebPartManager控件使用 WebPartCollection 对象来保留页面上所有WebPart控件的列表,而 WebPartZoneBase 控件使用 WebPartCollection 对象来跟踪WebPart它所包含的控件。

注意

集合 WebPartCollection 包含 WebPart 控件和其他服务器控件 (,例如用户控件、自定义控件和 ASP.NET 控件) 放置在区域中 WebPartZoneBase 并用作 Web 部件应用程序的一部分。 因此,例如,如果在页面中有一个WebPartZone区域,并在其中声明了自定义WebPart控件和 ASP.NET Calendar 控件,则这两个控件都将位于 由 属性引用的WebParts集合中WebPartCollection

对象 WebPartCollection 存在,以便 Web 部件控件集可以与强类型集合一起使用。 同样,如果要对一组WebPart控件执行大规模操作,可以使用 属性获取对 对象的WebPartCollectionWebParts引用。 例如,你可能想要循环访问页面上的所有 WebPart 控件,并通过某种方式更改其外观。 即使 对象是只读的 WebPartCollection ,也可以对集合中引用的基础控件的属性进行编程更改。

构造函数

WebPartCollection()

初始化 WebPartCollection 类的空的新实例。

WebPartCollection(ICollection)

通过传入 WebPartCollection 控件的 ICollection 集合来初始化 WebPart 对象的新实例。

属性

Count

获取 ReadOnlyCollectionBase 实例中包含的元素数。

(继承自 ReadOnlyCollectionBase)
InnerList

获取 ReadOnlyCollectionBase 实例中包含的元素的列表。

(继承自 ReadOnlyCollectionBase)
Item[Int32]

基于集合中的位置返回集合的成员。

Item[String]

基于唯一字符串标识符返回集合的成员。

方法

Contains(WebPart)

返回一个值,该值指示集合中是否存在特定控件。

CopyTo(WebPart[], Int32)

将集合复制到 WebPart 对象的数组。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetEnumerator()

返回循环访问 ReadOnlyCollectionBase 实例的枚举器。

(继承自 ReadOnlyCollectionBase)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
IndexOf(WebPart)

返回集合中特定成员的位置。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

显式接口实现

ICollection.CopyTo(Array, Int32)

从目标数组的指定索引处开始将整个 ReadOnlyCollectionBase 复制到兼容的一维 Array

(继承自 ReadOnlyCollectionBase)
ICollection.IsSynchronized

获取一个值,该值指示对 ReadOnlyCollectionBase 对象的访问是否同步(线程安全)。

(继承自 ReadOnlyCollectionBase)
ICollection.SyncRoot

获取一个对象,该对象可用于同步对 ReadOnlyCollectionBase 对象的访问。

(继承自 ReadOnlyCollectionBase)

扩展方法

Cast<TResult>(IEnumerable)

IEnumerable 的元素强制转换为指定的类型。

OfType<TResult>(IEnumerable)

根据指定类型筛选 IEnumerable 的元素。

AsParallel(IEnumerable)

启用查询的并行化。

AsQueryable(IEnumerable)

IEnumerable 转换为 IQueryable

适用于

另请参阅