Share via


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의 인스턴스가 들어 있는 웹 페이지입니다.

반환

WebPartManager

페이지에 있는 컨트롤의 현재 인스턴스를 참조하는 WebPartManager입니다.

예외

page이(가) null인 경우

예제

다음 코드 예제에서는 GetCurrentWebPartManager 메서드를 사용하는 방법을 보여 줍니다. 이 예제에는 사용자 지정 서버 컨트롤과 컨트롤을 호스트하는 웹 페이지의 두 부분이 있습니다.

사용자 지정 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

다음 코드 예제에서는 영역에서 컨트롤 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 작성하는 경우입니다.

참고

메서드는 GetCurrentWebPartManager 정적이므로 컨트롤 인스턴스 WebPartManager 없이 직접 호출할 수 있습니다.

컨트롤과 같은 WebPart 웹 파트 컨트롤 집합의 일부 컨트롤에는 WebPartManager 현재 WebPartManager 컨트롤에 대한 참조를 검색할 수 있는 속성이 있습니다. 따라서 이러한 컨트롤을 사용할 때는 이 속성을 사용하여 참조를 검색해야 합니다.

웹 페이지 내에서 코드 인라인 작성과 같이 컨트롤의 WebPartManager ID를 알고 있는 컨텍스트에서 코딩하는 경우 ID를 사용하여 컨트롤을 직접 참조하는 WebPartManager 것이 가장 간단하고 효율적입니다.

적용 대상

추가 정보