WebPartManager.Personalization Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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 entre no 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 compartilhada ou usuário. Os botões Modo de Edição e Modo de Navegação alternam cada 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 habilitar um usuário ou usuários para personalizar 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 em Editar Modo 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 de compartilhado para escopo do 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 acompanhados 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 personalização de Web Parts, consulte Visão geral da personalização de Web Parts.