PersonalizableAttribute クラス
アセンブリ: System.Web (system.web.dll 内)
構文
<AttributeUsageAttribute(AttributeTargets.Property)> _ Public NotInheritable Class PersonalizableAttribute Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Property)] public sealed class PersonalizableAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Property)] public ref class PersonalizableAttribute sealed : public Attribute
パーソナル化属性 Personalizable は、パーソナル化情報を保持する必要があるパブリック コントロール プロパティに適用されます。コントロールが Web パーツ ページ上の Web パーツ ゾーンにある場合、これらの値を保持したり、基になるデータ ストアから取得したりするコードは、ASP.NET によって自動生成されます。
プロパティをパーソナル化可能とマークするには、次の要件を満たしている必要があります。
プロパティのパーソナル化データの読み込みおよび保存を行うコードが自動的に生成されます。パーソナル化をサポートするプロパティは、プロパティにこの属性が存在するかどうか、およびプロパティが上記の制約に準拠しているかどうかに基づいて決まります。
読み取り専用プロパティおよび書き込み専用プロパティのパーソナル化は、サポートされていません。読み取り専用プロパティまたは書き込み専用プロパティにこの属性を適用すると、HttpException がスローされます。パラメータ付きのプロパティの場合も、HttpException 例外がスローされます。
この属性を持たない個々のプロパティは、IPersonalizable インターフェイスを通じて特別な処理を行わなければ、パーソナル化から除外されます。
コードで PersonalizableAttribute クラスを使用する方法を示すコード例を次に示します。この例は、ColorSelector.ascx という Web パーツ ユーザー コントロールを参照する .aspx ページで構成されています。.aspx ファイルのコード例を次に示します。
<%@ Page Language="C#" %> <%@ Register TagPrefix="uc1" TagName="colorcontrol" Src="ColorSelector.ascx" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:LoginName ID="LoginName1" runat="server" /> <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutAction="RedirectToLoginPage" /> <br /> <br /> <asp:WebPartManager ID="WebPartManager1" runat="server"> </asp:WebPartManager> </div> <asp:WebPartZone ID="WebPartZone1" runat="server" Height=200 Width=200> <ZoneTemplate> <uc1:colorcontrol id=colorcontrol runat=server /> </ZoneTemplate> </asp:WebPartZone> </form> </body> </html>
次のコードは、ColorSelector.ascx コントロールの例です。
<%@ Control Language="C#" %> <script runat=server> private System.Drawing.Color userchoice; [Personalizable] public System.Drawing.Color UserColorChoice { get { return userchoice; } set { userchoice = value; } } protected void OnRed(object src, EventArgs e) { _color.BackColor = System.Drawing.Color.Red; UserColorChoice = System.Drawing.Color.Red; } protected void OnGreen(object src, EventArgs e) { _color.BackColor = System.Drawing.Color.Green; UserColorChoice = System.Drawing.Color.Green; } protected void OnBlue(object src, EventArgs e) { _color.BackColor = System.Drawing.Color.Blue; UserColorChoice = System.Drawing.Color.Blue; } protected void Page_Init(object src, EventArgs e) { _redButton.Click += new EventHandler(OnRed); _greenButton.Click += new EventHandler(OnGreen); _blueButton.Click += new EventHandler(OnBlue); } protected void Page_Load(object src, EventArgs e) { if (!IsPostBack) { _color.BackColor = UserColorChoice; } } </script> <body> <asp:TextBox ID=_color runat=server Height=100 Width=100 /> <p> <asp:button runat=server id=_redButton text="Red" /> <asp:button runat=server id=_greenButton text="Green" /> <asp:button runat=server id=_blueButton text="Blue" /> </body>
System.Attribute
System.Web.UI.WebControls.WebParts.PersonalizableAttribute
プラットフォーム
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- PersonalizableAttribute クラスのページへのリンク