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, содержащий данные персонализации.
- Атрибуты
Примеры
В следующем примере кода показано, как использовать Personalization свойство программным способом.
Следующая веб-страница позволяет пользователю перейти в режим редактирования для изменения определенных Calendar аспектов элемента управления. Кнопка Переключить область переключает страницу на пользователь или общую область персонализации.
Кнопки Режим редактирования и Режим обзора переключают страницу в соответствующий режим отображения. Обратите внимание, <script>
что в разделе тега файла два метода, обрабатывающие события, используют Personalization свойство для доступа к полезным членам базового объекта. В частности, эти методы используют ToggleScope метод и Scope свойство объекта, доступ к который осуществляется через Personalization свойство .
<%@ 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>
Чтобы выполнить пример кода, необходимо также разрешить пользователю или пользователям персонализировать страницы в общей области. Добавьте запись в файл Web.config в <system.web>
разделе , которая выглядит как следующая разметка.
<webParts>
<personalization>
<authorization>
<allow
users="[Replace the text and brackets with a user name or
group.]"
roles="admin"
verbs="enterSharedScope" />
</authorization>
</personalization>
</webParts>
После загрузки страницы в браузере нажмите кнопку Переключить область и обратите внимание, что теперь на странице указано, что область является общей. Щелкните Режим редактирования , чтобы изменить режим отображения, щелкните меню глаголов в видимом элементе управления и выберите Изменить в меню. Обратите внимание, что отображается пользовательский интерфейс для обоих элементов управления редактированием. Теперь нажмите кнопку Режим обзора , чтобы вернуться к обычному просмотру. Если на странице указано, что она находится в общей области, нажмите кнопку Переключить область еще раз, чтобы убедиться, что страница находится в области пользователя. Затем выполните те же действия, чтобы снова изменить элемент управления, но обратите внимание, что теперь в пользовательском интерфейсе BehaviorEditorPart редактирования элемент управления не отображается. Это связано с тем, что этот элемент управления работает только в том случае, если страница находится в общей области персонализации.
Комментарии
Свойство Personalization предоставляет способ доступа к объекту WebPartPersonalization , связанному со страницей, WebPartManager через элемент управления . С помощью этого свойства можно получить доступ к различным членам объекта персонализации. Например, можно использовать ToggleScope метод для переключения области персонализации страницы с общей на пользовательскую или наоборот. Вы также можете узнать текущую область персонализации страницы, включена ли персонализация на странице, какой поставщик используется для данных персонализации и многое другое.
Обратите внимание, что данные, на которые ссылается Personalization свойство, являются только данными персонализации на уровне страницы, которые отслеживаются элементом WebPartManager управления . Данные персонализации элементов управления, такие как значения персонализированных свойств WebPart элементов управления, не являются частью Personalization свойства .
Примечание
Дополнительные сведения о персонализации веб-частей см. в статье Общие сведения о персонализации веб-частей.