WebPartManager.Personalization Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém uma referência a um objeto que contém dados de personalização para uma página 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 de Propriedade
A WebPartPersonalization que contém dados de personalização.
- Atributos
Exemplos
O exemplo de código seguinte demonstra como usar a Personalization propriedade de forma programática.
A página Web seguinte permite ao utilizador entrar no modo de edição para editar certos aspetos do Calendar controlo. O botão Toggle Scope muda a página para utilizador ou escopo de personalização partilhada. Os botões Edit Mode e Browse Mode mudam a página para o modo de exibição apropriado. Note que, na <script> secção de etiquetas do ficheiro, dois dos métodos que lidam com eventos usam a Personalization propriedade para aceder a membros úteis do objeto subjacente. Especificamente, estes métodos usam o ToggleScope método e a Scope propriedade sobre o objeto acedido através 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, também deve permitir que um utilizador ou utilizadores personalizem páginas em âmbito partilhado. Adicione uma entrada no ficheiro Web.config, dentro da <system.web> secção, que se assemelhe à marcação seguinte.
<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 carregares a página num navegador, clica no botão Alternar Escopo e repara que a página agora diz que o escopo é partilhado. Clica em Modo Editar para mudar o modo de visualização, clica no menu de verbos no controlo visível e seleciona Editar no menu. Repara que aparece a interface de utilizador (UI) de ambos os controlos de edição. Agora clique em Modo de Navegação para voltar à navegação normal. Se a página indicar que está em âmbito partilhado, clique novamente em Alternar Escopo para garantir que a página está dentro do âmbito do utilizador. De seguida, siga os mesmos passos para editar o controlo novamente, mas repare que agora na interface de edição, o BehaviorEditorPart controlo não aparece. Isto porque este controlo só funciona quando a página está dentro do âmbito de personalização partilhada.
Observações
A Personalization propriedade fornece uma forma de aceder ao WebPartPersonalization objeto associado a uma página através do WebPartManager controlo. Usando esta propriedade, pode aceder aos vários membros do objeto de personalização. Por exemplo, pode usar o ToggleScope método para mudar o âmbito de personalização da página de partilhado para utilizador, ou vice-versa. Também pode descobrir o âmbito atual da personalização da página, se a personalização está sequer ativada na página, que fornecedor está a ser utilizado para os dados de personalização, entre outros.
Note que os dados referenciados pela Personalization propriedade são apenas os dados de personalização ao nível da página que são rastreados pelo WebPartManager controlo. Os dados de personalização específicos de controlo, como os valores das propriedades personalizáveis nos WebPart controlos, não fazem parte da Personalization propriedade.
Note
Para mais informações sobre personalização de Web Parts, consulte Visão Geral da Personalização de Web Parts.