次の方法で共有


WebPartManager.WebParts プロパティ

定義

Web ページ上の WebPart コントロールで追跡されるすべての WebPartManager コントロールへの参照を取得します。

public:
 property System::Web::UI::WebControls::WebParts::WebPartCollection ^ WebParts { System::Web::UI::WebControls::WebParts::WebPartCollection ^ get(); };
[System.ComponentModel.Browsable(false)]
public System.Web.UI.WebControls.WebParts.WebPartCollection WebParts { get; }
[<System.ComponentModel.Browsable(false)>]
member this.WebParts : System.Web.UI.WebControls.WebParts.WebPartCollection
Public ReadOnly Property WebParts As WebPartCollection

プロパティ値

WebPartCollection コントロールのセットへの参照が格納された WebPart

属性

次のコード例では、 プロパティをプログラムで使用して個々WebPartWebPartsコントロールにアクセスする方法を示します。 Web ページの宣言型マークアップでは、 要素内に <asp:webpartzone> 2 つの標準 ASP.NET サーバー コントロールがあることに注意してください。 これらは クラスから WebPart 継承しませんが、ゾーン内にあるため、実行時にオブジェクトで GenericWebPart ラップされるため、 プロパティによって参照されるコレクションに WebParts 含まれます。 また、このゾーンにカスタム WebPart コントロール、ユーザー コントロール、またはカスタム サーバー コントロールを追加することもできます。同じように処理されます。

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  protected void Button1_Click(object sender, EventArgs e)
  {
    Label1.Text = "WebPart count:  " +
      WebPartManager1.WebParts.Count.ToString();
  }

  protected void Button2_Click(object sender, EventArgs e)
  {
    WebPartManager1.WebParts["Calendar1"].ChromeType = 
      PartChromeType.BorderOnly;
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <!-- Reference the WebPartManager control. -->
    <asp:WebPartManager ID="WebPartManager1" runat="server" />    
    <div>
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList 
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links"
            ExportMode="All">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="WebPart Count" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Hide Calendar Title" 
        OnClick="Button2_Click" />  
      <br />
      <asp:Label ID="Label1" runat="server" text="" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="vb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Protected Sub Button1_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    
    Label1.Text = "WebPart count:  " & _
      WebPartManager1.WebParts.Count.ToString()
  End Sub

  Protected Sub Button2_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    
    WebPartManager1.WebParts("Calendar1").ChromeType = _
      PartChromeType.BorderOnly

  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <!-- Reference the WebPartManager control. -->
    <asp:WebPartManager ID="WebPartManager1" runat="server" />    
    <div>
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList 
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links"
            ExportMode="All">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="WebPart Count" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Hide Calendar Title" 
        OnClick="Button2_Click" />  
      <br />
      <asp:Label ID="Label1" runat="server" text="" />
    </div>
    </form>
</body>
</html>

コード例を機能させるには、Web パーツ記述ファイルのエクスポートを有効にするには、Web.config ファイルに設定を追加する必要があることに注意してください。 このコード例の Web ページと同じディレクトリにWeb.config ファイルがあることを確認します。 セクション内に<system.web>、次の<webParts>マークアップのように、 属性が にtrue設定された要素enableExportがあることを確認します。

<webParts enableExport="true">

...

</webParts>

ブラウザーにページを読み込んだ後、[ WebPart Count ] ボタンをクリックすると、 プロパティを WebParts 使用してコレクション内のコントロールの数が返されます。 [ 予定表のタイトルを非表示にする ] ボタンをクリックすると、タイトルではなく罫線のみで表示されるように予定表が変更されます。

注釈

プロパティはWebParts、ページ上のWebPartManagerゾーン内WebPartZoneBaseに含まれるすべてのWebPartコントロールを追跡するために、 コントロールによって使用されます。 コレクションは読み取り専用ですが、コレクションを通じて個々 WebPart のコントロールにアクセスし、プログラムで変更を加えることができます。

Note

コントロールを WebPart ゾーン外の WebPartZone ページに配置すると、コントロールがコントロールによって WebPartManager 追跡されないか、コレクション WebParts 内で参照されなくなります。 ただし、ゾーン外でコントロールを WebPart 使用する理由はほとんどありません。これは、Web パーツの機能が失われ、通常のサーバー コントロールとして機能するためです。

カスタム WebPart コントロール、標準の ASP.NET コントロール、ユーザー コントロール、カスタム サーバー コントロールのいずれであっても、ゾーンに配置できる任意の種類のコントロールは、実行時にコントロールとして WebPart 扱うことができます。 コントロールではない WebPart コントロールがゾーンに WebPartZone 配置されている場合、実行時 ASP.NET コントロールを オブジェクトで GenericWebPart ラップし、コントロールが真 WebPart のコントロールとして動作できるようにします。 したがって、 プロパティを WebParts 使用すると、 コントロールは WebPartManager 、 クラスから派生したかどうかに関係なく、任意の種類のサーバー コントロールを WebPart 追跡できます。

適用対象