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


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>

После загрузки страницы в браузере и нажатия кнопки "Переключить ChromeState ", код в частичном классе циклизируется через WebPartCollection объект и также позволяет свести к минимуму элементы управления или вернуть их в нормальное состояние. Или, если вы неоднократно нажимаете кнопку "Переключить маркированный список1" , заголовок самого верхнего элемента управления изменяется на альтернативные значения.

Комментарии

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

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

Замечание

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

Объект WebPartCollection существует, чтобы набор элементов управления веб-частей работал с строго типизированными коллекциями. Аналогичным образом, если вы хотите выполнить массовые операции с набором WebPart элементов управления, можно получить ссылку на WebPartCollection объект с помощью WebParts свойства. Например, может потребоваться прокрутить все WebPart элементы управления на странице и изменить их внешний вид каким-то образом. Несмотря на то, что WebPartCollection объект доступен только для чтения, можно вносить программные изменения в свойства базовых элементов управления, на которые ссылается коллекция.

Конструкторы

Имя Описание
WebPartCollection()

Инициализирует пустой новый экземпляр WebPartCollection класса.

WebPartCollection(ICollection)

Инициализирует новый экземпляр WebPartCollection объекта, передав коллекцию ICollectionWebPart элементов управления.

Свойства

Имя Описание
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)

Методы расширения

Имя Описание
AsParallel(IEnumerable)

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

Приведение элементов IEnumerable к указанному типу.

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

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

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