WebPartManager.Personalization プロパティ
アセンブリ: System.Web (system.web.dll 内)

Public ReadOnly Property Personalization As WebPartPersonalization
public WebPartPersonalization Personalization { get; }
パーソナル化データが格納された WebPartPersonalization。

Personalization プロパティには、WebPartManager コントロールを通じて、ページに関連付けられた WebPartPersonalization オブジェクトにアクセスする方法が用意されています。このプロパティを使用すると、パーソナル化オブジェクトのさまざまなメンバにアクセスできます。たとえば、ToggleScope メソッドを使用して、ページのパーソナル化スコープを共有スコープからユーザー スコープに切り替えたり、ユーザー スコープから共有スコープに切り替えたりできます。また、ページの現在のパーソナル化スコープ、ページ上でパーソナル化が有効かどうか、パーソナル化データに使用されるプロバイダなどを確認できます。
Personalization プロパティによって参照されるデータは、WebPartManager コントロールで追跡されるページ レベルのパーソナル化データだけです。WebPart コントロールのパーソナル化プロパティの値など、コントロール固有のパーソナル化データは Personalization プロパティの一部ではありません。
![]() |
---|

プログラムによる Personalization プロパティの使用方法のコード例を次に示します。
次の Web ページでは、ユーザーが編集モードに切り替えて、Calendar コントロールの特定の要素を編集できます。[Toggle Scope] で、ユーザー パーソナル化スコープまたは共有パーソナル化スコープにページを切り替えます。[編集モード] および [Browse Mode] それぞれで、該当する表示モードにページが切り替わります。ファイルの <script> タグ セクションでは、イベントを処理する 2 つのメソッドが Personalization プロパティを使用して、基になるオブジェクトの役に立つメンバにアクセスします。具体的には、これらのメソッドは、Personalization プロパティを通じてアクセスするオブジェクトの ToggleScope メソッドと Scope プロパティを使用します。
<%@ Page Language="vb" %> <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 > <head id="Head1" runat="server"> </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="c#" %> <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 > <head id="Head1" runat="server"> </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>
ブラウザにページを読み込んだ後、[Toggle Scope] をクリックすると、スコープが共有されることを伝えるページが表示されます。[編集モード] をクリックして表示モードを変更し、表示コントロールの動詞メニューをクリックして、メニューの [編集] を選択します。両方の編集コントロールのユーザー インターフェイス (UI) が表示されます。[Browse Mode] をクリックし、通常のブラウズ モードに戻ります。共有スコープであることがページに表示されたら、ページがユーザー スコープになるよう、もう一度 [Toggle Scope] をクリックします。次に、同じ手順に従ってもう一度コントロールを編集しますが、今回は編集 UI に BehaviorEditorPart コントロールが表示されないことに注意してください。これは、ページが共有パーソナル化スコープにある場合にのみ、このコントロールが機能するためです。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からWebPartManager.Personalization プロパティを検索する場合は、下記のリンクをクリックしてください。

- WebPartManager.Personalization プロパティのページへのリンク