Поделиться через


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

Примеры

В следующем примере кода показано использование объекта на WebPartCollection странице веб-частей. Этот пример состоит из трех частей:

  • Код страницы в разделяемом классе.

  • Веб-страница, содержащая элементы управления.

  • Описание работы примера в браузере.

Первая часть примера кода содержит код страницы в разделяемом классе. Обратите внимание, что Button1_Click метод создает WebPartCollection объект , состоящий из всех WebPart элементов управления, на которые ссылается WebPartManager.WebParts свойство , которое включает все 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>

После загрузки страницы в браузере и нажатия кнопки Toggle ChromeState код в разделяемом классе выполняет цикл по объекту WebPartCollection и поочередно сворачивает элементы управления или возвращает их в нормальное состояние. Кроме того, если вы несколько раз нажимаете кнопку Toggle BulletedList1 Title ( Заголовок) заголовок верхнего элемента управления изменится на альтернативные значения.

Комментарии

Класс WebPartCollection представляет собой доступную только для чтения коллекцию элементов управления, которые обычно используются элементами WebPartZoneBase управления и WebPartManager для управления наборами WebPart элементов управления.

Элемент WebPartManager управления использует объект для WebPartCollection хранения списка всех WebPart элементов управления на странице, в то время как WebPartZoneBase элемент управления использует WebPartCollection объект для отслеживания WebPart содержащихся в нем элементов управления.

Примечание

Коллекция WebPartCollection содержит элементы WebPart управления и другие серверные элементы управления (например, пользовательские элементы управления, пользовательские элементы управления и элементы управления ASP.NET), которые размещаются в WebPartZoneBase зонах и используются как часть приложений веб-частей. Например, если на странице есть WebPartZone зона и в ней вы объявляете пользовательский WebPart элемент управления и элемент управления ASP.NET Calendar , оба элемента управления будут находиться в WebPartCollection коллекции, на которую ссылается WebParts свойство .

Объект WebPartCollection существует, чтобы набор элементов управления веб-частей работал со строго типизированными коллекциями. Аналогичным образом, если требуется выполнить массовые операции с набором WebPart элементов управления, можно получить ссылку WebPartCollection на объект с помощью WebParts свойства . Например, может потребоваться выполнить цикл по всем 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.

Применяется к

См. также раздел