WebPartManager.Personalization Propriedade

Definição

Obtém uma referência a um objeto que contém os dados de personalização de uma página da Web.

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

Valor da propriedade

WebPartPersonalization

Um WebPartPersonalization que contém os dados de personalização.

Atributos

Exemplos

O exemplo de código a seguir demonstra como usar a Personalization propriedade programaticamente.

A página da Web a seguir permite que um usuário insira o modo de edição para editar determinados aspectos do Calendar controle. O botão Alternar Escopo alterna a página para o escopo de personalização compartilhado ou usuário. Os botões Modo de Edição e Modo de Navegação alternam a página para o modo de exibição apropriado. Observe que, <script> na seção de marca do arquivo, dois dos métodos que manipulam eventos usam a Personalization propriedade para acessar membros úteis do objeto subjacente. Especificamente, esses métodos usam o ToggleScope método e a Scope propriedade no objeto acessado por meio da Personalization propriedade.

<%@ 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>

Para que o exemplo de código seja executado, você também deve permitir que um usuário ou usuário personalize páginas no escopo compartilhado. Adicione uma entrada ao arquivo Web.config, dentro da <system.web> seção, que se parece com a marcação a seguir.

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

Depois de carregar a página em um navegador, clique no botão Alternar Escopo e observe que a página agora diz que o escopo é compartilhado. Clique no Modo de Edição para alterar o modo de exibição, clique no menu de verbos no controle visível e selecione Editar no menu. Observe que a interface do usuário para ambos os controles de edição é exibida. Agora clique em Procurar Modo para retornar à navegação normal. Se a página disser que está no escopo compartilhado, clique em Alternar Escopo novamente para garantir que a página esteja no escopo do usuário. Em seguida, siga as mesmas etapas para editar o controle novamente, mas observe que agora na interface do usuário de edição, o BehaviorEditorPart controle não aparece. Isso ocorre porque esse controle só funciona quando a página está no escopo de personalização compartilhada.

Comentários

A Personalization propriedade fornece uma maneira de acessar o WebPartPersonalization objeto associado a uma página por meio do WebPartManager controle. Usando essa propriedade, você pode acessar os vários membros do objeto de personalização. Por exemplo, você pode usar o ToggleScope método para alternar o escopo de personalização da página do escopo compartilhado para o usuário ou vice-versa. Você também pode descobrir o escopo de personalização atual da página, se a personalização está habilitada na página, qual provedor está sendo usado para os dados de personalização e muito mais.

Observe que os dados referenciados pela Personalization propriedade são apenas os dados de personalização no nível da página que são rastreados pelo WebPartManager controle. Dados de personalização específicos do controle, como os valores de propriedades personalizáveis em WebPart controles, não fazem parte da Personalization propriedade.

Observação

Para obter mais informações sobre Web Parts personalização, consulte Web Parts Visão geral de personalização.

Aplica-se a

Confira também