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 使用する方法を示します。 この例には、次の 3 つの部分があります。

  • 部分クラス内のページのコード。

  • コントロールを含む Web ページ。

  • ブラウザーでのこの例の動作の説明。

コード例の最初の部分には、部分クラスのページのコードが含まれています。 メソッドはButton1_Click、 プロパティで参照されるすべてのWebPartコントロールで構成される オブジェクトをWebPartManager.WebParts作成WebPartCollectionします。このオブジェクトには、ページ上のすべての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

コード例の 2 番目の部分は、 コントロールを含む Web ページです。 で 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、コントロールの読み取り専用コレクションです。通常は、 コントロールのWebPartセットを管理するために および WebPartManager コントロールによってWebPartZoneBase使用されます。

コントロールは WebPartManager 、 オブジェクトを WebPartCollection 使用してページ上のすべての WebPart コントロールの一覧を保持します。一方 WebPartZoneBase 、コントロールは オブジェクトを WebPartCollection 使用して、コントロールに含まれるコントロールを追跡 WebPart します。

注意

WebPartCollectionコレクションには、ゾーンに配置WebPartZoneBaseされ、Web パーツ アプリケーションの一部として使用されるコントロールと他のサーバー コントロール (ユーザー コントロール、カスタム コントロール、ASP.NET コントロールなど) の両方WebPartが含まれています。 そのため、たとえば、ページ内にゾーンがありWebPartZone、その中でカスタム WebPart コントロールと ASP.NET Calendar コントロールを宣言する場合、両方のコントロールが プロパティによってWebParts参照されるコレクション内WebPartCollectionに配置されます。

Web 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 全体を互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。

(継承元 ReadOnlyCollectionBase)
ICollection.IsSynchronized

ReadOnlyCollectionBase オブジェクトへのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。

(継承元 ReadOnlyCollectionBase)
ICollection.SyncRoot

ReadOnlyCollectionBase オブジェクトへのアクセスを同期するために使用できるオブジェクトを取得します。

(継承元 ReadOnlyCollectionBase)

拡張メソッド

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。

AsParallel(IEnumerable)

クエリの並列化を有効にします。

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。

適用対象

こちらもご覧ください