WebPartManager.Personalization プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
プロパティ値
パーソナル化データが格納された WebPartPersonalization。
- 属性
例
次のコード例では、 プロパティをプログラムで使用する方法を Personalization 示します。
次の Web ページを使用すると、ユーザーは編集モードに入り、コントロールの特定の側面を Calendar 編集できます。 [ スコープの切り替え ] ボタンをクリックすると、ページがユーザーまたは共有パーソナル化スコープに切り替わります。
[編集モード] ボタンと [ブラウズ モード] ボタンは、ページを適切な表示モードに切り替えます。 ファイルの <script>
tag セクションでは、イベントを処理するメソッドのうち 2 つで、 プロパティを 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>
コード例を実行するには、ユーザーまたはユーザーが共有スコープ内のページをカスタマイズできるようにする必要もあります。 セクション内 <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 一部ではありません。
注意
Web パーツのパーソナル化の詳細については、「 Web パーツのパーソナル化の概要」を参照してください。
適用対象
こちらもご覧ください
.NET