WebPartManager.GetCurrentWebPartManager(Page) メソッド

定義

ページ上の WebPartManager コントロールの現在のインスタンスへの参照を取得します。

public:
 static System::Web::UI::WebControls::WebParts::WebPartManager ^ GetCurrentWebPartManager(System::Web::UI::Page ^ page);
public static System.Web.UI.WebControls.WebParts.WebPartManager GetCurrentWebPartManager (System.Web.UI.Page page);
static member GetCurrentWebPartManager : System.Web.UI.Page -> System.Web.UI.WebControls.WebParts.WebPartManager
Public Shared Function GetCurrentWebPartManager (page As Page) As WebPartManager

パラメーター

page
Page

WebPartManager のインスタンスが含まれている Web ページ。

戻り値

ページ上のコントロールの現在のインスタンスを参照する WebPartManager

例外

pagenullです。

次のコード例は、GetCurrentWebPartManager メソッドの使用方法を示します。 この例には、カスタム サーバー コントロールと、コントロールをホストする Web ページという 2 つの部分があります。

カスタム Label コントロールは、 メソッドを GetCurrentWebPartManager 使用して現在のページのコントロールの WebPartManager ID を取得し、ID を表示します。

namespace Samples.AspNet.CS.Controls
{
  using System;
  using System.Web;
  using System.Web.Security;
  using System.Security.Permissions;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  using System.Web.UI.WebControls.WebParts;

  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class MyManagerIDLabel : Label
  {

    protected override void OnPreRender(EventArgs e)
    {
      EnsureChildControls();

      this.Text = 
        WebPartManager.GetCurrentWebPartManager(Page).ID;
    }
  }
}
Imports System.Web
Imports System.Web.Security
Imports System.Security.Permissions
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

Namespace Samples.AspNet.VB.Controls

  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Public Class MyManagerIDLabel

    Inherits Label

    Protected Overrides Sub OnPreRender(ByVal e As EventArgs)

      EnsureChildControls()
      Me.Text = _
        WebPartManager.GetCurrentWebPartManager(Page).ID

    End Sub

  End Class

End Namespace

次のコード例では、ゾーン内のコントロールをホストする Web ページを WebPartZone 提供します。

<%@ Page Language="C#" %>
<%@ Register 
    Namespace="Samples.AspNet.CS.Controls" 
    TagPrefix="aspSample"%>

<!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="WebPartManager1" runat="server">
      </asp:WebPartManager>
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <aspSample:MyManagerIDLabel ID="mgrID" runat="server" 
            Title="Manager ID Label" 
            Description="Displays the ID of the current WebPartManger."/>
        </ZoneTemplate>
      </asp:WebPartZone>
    </div>
    </form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Register 
    Namespace="Samples.AspNet.VB.Controls" 
    TagPrefix="aspSample"%>

<!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="WebPartManager1" runat="server">
      </asp:WebPartManager>
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <aspSample:MyManagerIDLabel ID="mgrID" runat="server" 
            Title="Manager ID Label" 
            Description="Displays the ID of the current WebPartManger."/>
        </ZoneTemplate>
      </asp:WebPartZone>
    </div>
    </form>
</body>
</html>

ブラウザーでページを読み込んだ後、現在 WebPartManager のコントロールの ID がカスタム Label コントロール内に表示されます。

注釈

メソッドは GetCurrentWebPartManager 、現在 WebPartManager のコントロールへの参照を取得するコンテキストで便利です。 これが発生する一般的なシナリオは、開発中にページ上のコントロールの ID が何であるかを認識できないカスタム コントロールを WebPartManager 作成している場合です。

Note

メソッドは GetCurrentWebPartManager 静的であるため、コントロールの WebPartManager インスタンスを必要とせずに直接呼び出すことができます。

コントロールなど WebPart 、Web パーツ コントロール セット内の一部のコントロールには WebPartManager 、現在 WebPartManager のコントロールへの参照を取得できるプロパティがあります。 そのため、このようなコントロールを操作する場合は、このプロパティを使用して参照を取得する必要があります。

Web ページ内でコードをインラインで記述するなど、コントロールの WebPartManager ID がわかっているコンテキストでコーディングする場合は、その ID を使用してコントロールを直接参照するのが WebPartManager 最も簡単で最も効率的です。

適用対象

こちらもご覧ください