WebPartManager.Personalization 속성

정의

웹 페이지의 개인 설정 데이터가 들어 있는 개체에 대한 참조를 가져옵니다.

public:
 property System::Web::UI::WebControls::WebParts::WebPartPersonalization ^ Personalization { System::Web::UI::WebControls::WebParts::WebPartPersonalization ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.WebParts.WebPartPersonalization Personalization { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.Personalization : System.Web.UI.WebControls.WebParts.WebPartPersonalization
Public ReadOnly Property Personalization As WebPartPersonalization

속성 값

WebPartPersonalization

개인 설정 데이터가 들어 있는 WebPartPersonalization입니다.

특성

예제

다음 코드 예제에서는 프로그래밍 방식으로 속성을 사용 Personalization 하는 방법을 보여 줍니다.

다음 웹 페이지에서는 사용자가 편집 모드로 전환하여 컨트롤의 Calendar 특정 측면을 편집할 수 있습니다. 범위 설정/해제 단추는 페이지를 사용자 또는 공유 개인 설정 범위로 전환합니다. 편집 모드찾아보기 모드 단추는 각각 페이지를 적절한 표시 모드로 전환합니다. 파일의 <script> 태그 섹션에서 이벤트를 처리하는 두 메서드는 이 속성을 사용하여 Personalization 기본 개체의 유용한 멤버에 액세스합니다. 특히 이러한 메서드는 ToggleScope 속성을 통해 Personalization 액세스하는 개체의 메서드 및 Scope 속성을 사용합니다.

<%@ 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)
  {
    if ((mgr1.Personalization.Scope == PersonalizationScope.User)
      && (mgr1.Personalization.CanEnterSharedScope))
    {
      mgr1.Personalization.ToggleScope();
    }
    else if (mgr1.Personalization.Scope ==
      PersonalizationScope.Shared)
    {
      mgr1.Personalization.ToggleScope();
    }
    else
    {
      // If the user cannot enter shared scope you may want
      // to notify them on the page.
    }
  }

  protected void Button2_Click(object sender, EventArgs e)
  {
    mgr1.DisplayMode = WebPartManager.EditDisplayMode;
  }

  protected void Button3_Click(object sender, EventArgs e)
  {
    mgr1.DisplayMode = WebPartManager.BrowseDisplayMode;
  }

  protected void Page_Load(object sender, EventArgs e)
  {
    Label1.Text = "Scope is: "
      + mgr1.Personalization.Scope.ToString();
  }
</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">
    <div>
      <asp:WebPartManager ID="mgr1" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:Calendar ID="Calendar1" runat="server" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:EditorZone ID="EditorZone1" runat="server">
        <ZoneTemplate>
          <asp:AppearanceEditorPart ID="AppearanceEditorPart1" 
            runat="server"  />
          <asp:BehaviorEditorPart ID="BehaviorEditorPart1" 
            runat="server" />
        </ZoneTemplate>
      </asp:EditorZone>
      <hr />
      <asp:Button ID="Button1" runat="server" Text="Toggle Scope" OnClick="Button1_Click"  />
      <asp:Button ID="Button2" runat="server" Text="Edit Mode" OnClick="Button2_Click" />
      <asp:Button ID="Button3" runat="server" Text="Browse Mode" OnClick="Button3_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)
    If mgr1.Personalization.Scope = PersonalizationScope.User _
      AndAlso mgr1.Personalization.CanEnterSharedScope Then
      mgr1.Personalization.ToggleScope()
    ElseIf mgr1.Personalization.Scope = _
      PersonalizationScope.Shared Then
      mgr1.Personalization.ToggleScope()
    Else
      ' If the user cannot enter shared scope you may want
      ' to notify them on the page.
    End If
    
  End Sub
  
  Protected Sub Button2_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    mgr1.DisplayMode = WebPartManager.EditDisplayMode
  End Sub
  
  Protected Sub Button3_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    mgr1.DisplayMode = WebPartManager.BrowseDisplayMode
  End Sub

  Protected Sub Page_Load(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    Label1.Text = "Scope is: " & mgr1.Personalization.Scope.ToString()
  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">
    <div>
      <asp:WebPartManager ID="mgr1" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:Calendar ID="Calendar1" runat="server" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:EditorZone ID="EditorZone1" runat="server">
        <ZoneTemplate>
          <asp:AppearanceEditorPart ID="AppearanceEditorPart1" 
            runat="server"  />
          <asp:BehaviorEditorPart ID="BehaviorEditorPart1" 
            runat="server" />
        </ZoneTemplate>
      </asp:EditorZone>
      <hr />
      <asp:Button ID="Button1" runat="server" Text="Toggle Scope" OnClick="Button1_Click"  />
      <asp:Button ID="Button2" runat="server" Text="Edit Mode" OnClick="Button2_Click" />
      <asp:Button ID="Button3" runat="server" Text="Browse Mode" OnClick="Button3_Click" />
      <br />
      <asp:Label ID="Label1" runat="server" Text="" />
     </div>
     </form>
</body>
</html>

코드 예제를 실행하려면 사용자 또는 사용자가 공유 범위의 페이지를 개인 설정하도록 설정해야 합니다. 섹션 내 <system.web> 의 Web.config 파일에 다음 태그와 같은 항목을 추가합니다.

<webParts>  
  <personalization>  
    <authorization>  
      <allow  
        users="[Replace the text and brackets with a user name or   
           group.]"  
        roles="admin"   
        verbs="enterSharedScope"  />  
    </authorization>  
  </personalization>  
</webParts>   

브라우저에서 페이지를 로드한 후 범위 설정/해제 단추를 클릭하면 이제 페이지에 범위가 공유됨을 알 수 있습니다. 모드 편집 을 클릭하여 표시 모드를 변경하고, 표시되는 컨트롤의 동사 메뉴를 클릭한 다음, 메뉴에서 편집 을 선택합니다. 두 편집 컨트롤 모두에 대한 UI(사용자 인터페이스)가 나타납니다. 이제 찾아보기 모드 를 클릭하여 일반 검색으로 돌아갑니다. 페이지가 공유 범위에 있다고 표시되면 범위를 다시 전환 하여 페이지가 사용자 범위에 있는지 확인합니다. 다음으로, 동일한 단계에 따라 컨트롤을 다시 편집하지만 편집 UI에서는 컨트롤이 BehaviorEditorPart 표시되지 않습니다. 이 컨트롤은 페이지가 공유 개인 설정 범위에 있는 경우에만 작동하기 때문입니다.

설명

이 속성은 Personalization 컨트롤을 WebPartPersonalization 통해 WebPartManager 페이지와 연결된 개체에 액세스하는 방법을 제공합니다. 이 속성을 사용하면 개인 설정 개체의 다양한 멤버에 액세스할 수 있습니다. 예를 들어 이 메서드를 ToggleScope 사용하여 페이지의 개인 설정 범위를 공유 범위에서 사용자 범위로 전환하거나 그 반대로 전환할 수 있습니다. 페이지의 현재 개인 설정 범위, 페이지에서 개인 설정이 사용되는지 여부, 개인 설정 데이터에 사용되는 공급자 등을 확인할 수도 있습니다.

속성에서 참조하는 Personalization 데이터는 컨트롤에서 추적하는 WebPartManager 페이지 수준 개인 설정 데이터일 뿐입니다. 컨트롤의 개인 설정 가능한 속성 WebPart 값과 같은 컨트롤별 개인 설정 데이터는 속성의 Personalization 일부가 아닙니다.

참고

웹 파트 개인 설정에 대한 자세한 내용은 웹 파트 개인 설정 개요를 참조하세요.

적용 대상

추가 정보