IAttributeAccessor インターフェイス
アセンブリ: System.Web (system.web.dll 内)


.NET Framework では、WebControl、HtmlControl、ListItem の各クラスから継承するカスタム サーバー コントロールを作成する場合、これらの各クラスは IAttributeAccessor インターフェイスを実装しているため、プログラムによる属性へのアクセスが自動的に有効になります。
これらのクラスのいずれからも継承しないカスタム サーバー コントロールを作成し、コントロールの厳密に型指定されたプロパティに対応していない属性にプログラムによってアクセスできるようにする場合は、必ず IAttributeAccessor インターフェイスを実装してください。

' The following class creates a custom ASP.NET server control that implements ' the IAttributeAccessor interface. It creates a MyTextBox class that contains ' Width and Text properties that get and set their values from view state. ' Pages that use this control create an instance of this control and set the ' Width property using the IAttributeAccessor.SetAttribute method. ' The page then displays the values of the Text and Width properties ' using the IAttributeAccessor.GetAttribute method. ' When compiled, this assembly is named MyAttributeAccessor. Imports System Imports System.Web Imports System.Web.UI Imports System.Security.Permissions Namespace AttributeAccessor <AspNetHostingPermission(SecurityAction.Demand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ Public NotInheritable Class MyTextBox Inherits Control Implements IAttributeAccessor ' Declare the Width property. Public Property Width() As String Get Return CType(ViewState("Width"), String) End Get Set ViewState("Width") = value End Set End Property ' Declare the Text property. Public Property Text() As String Get Return CType(ViewState("Text"), String) End Get Set ViewState("Text") = value End Set End Property ' Implement the SetAttribute method for the control. When ' this method is called from a page, the control's properties ' are set to values defined in the page. Public Sub SetAttribute(name As String, value1 As String) Implements IAttributeAccessor.SetAttribute ViewState(name) = value1 End Sub 'SetAttribute ' Implement the GetAttribute method for the control. When ' this method is called from a page, the values for the control's ' properties can be displayed in the page. Public Function GetAttribute(name As String) As String Implements IAttributeAccessor.GetAttribute Return CType(ViewState(name), String) End Function 'GetAttribute Protected Overrides Sub Render(output As HtmlTextWriter) output.Write(("<input type=text id= " + Me.UniqueID)) output.Write((" Value='" + Me.Text)) output.Write(("' Size=" + Me.Width + ">")) End Sub 'Render End Class 'MyTextBox End Namespace 'AttributeAccessor
// The following class creates a custom ASP.NET server control that implements // the IAttributeAccessor interface. It creates a MyTextBox class that contains // Width and Text properties that get and set their values from view state. // Pages that use this control create an instance of this control and set the // Width property using the IAttributeAccessor.SetAttribute method. // The page then displays the values of the Text and Width properties // using the IAttributeAccessor.GetAttribute method. // When compiled, this assembly is named MyAttributeAccessor. using System; using System.Web; using System.Web.UI; using System.Security.Permissions; namespace AttributeAccessor { [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class MyTextBox : Control, IAttributeAccessor { // Declare the Width property. public String Width { get { return (String)ViewState["Width"]; } set { ViewState["Width"] = value; } } // Declare the Text property. public String Text { get { return (String)ViewState["Text"]; } set { ViewState["Text"] = value; } } // Implement the SetAttribute method for the control. When // this method is called from a page, the control's properties // are set to values defined in the page. public void SetAttribute(String name, String value1) { ViewState[name] = value1; } // Implement the GetAttribute method for the control. When // this method is called from a page, the values for the control's // properties can be displayed in the page. public String GetAttribute(String name) { return (String)ViewState[name]; } protected override void Render(HtmlTextWriter output) { output.Write("<input type=text id= " + this.UniqueID); output.Write(" Value='" + this.Text); output.Write("' Size=" + this.Width + ">"); } } }
package AttributeAccessor; // The following class creates a custom ASP.NET server control that implements // the IAttributeAccessor interface. It creates a MyTextBox class that contains // Width and Text properties that get and set their values from view state. // Pages that use this control create an instance of this control and set the // Width property using the IAttributeAccessor.SetAttribute method. // The page then displays the values of the Text and Width properties // using the IAttributeAccessor.GetAttribute method. // When compiled, this assembly is named MyAttributeAccessor. import System.*; import System.Web.UI.*; public class MyTextBox extends Control implements IAttributeAccessor { // Declare the Width property. /** @property */ public String get_Width() { return (String)(this.get_ViewState().get_Item("Width")); } //get_Width /** @property */ public void set_Width(String value) { this.get_ViewState().set_Item("Width", value); } //set_Width // Declare the Text property. /** @property */ public String get_Text() { return (String)(this.get_ViewState().get_Item("Text")); } //get_Text /** @property */ public void set_Text(String value) { this.get_ViewState().set_Item("Text", value); } //set_Text // Implement the SetAttribute method for the control. When // this method is called from a page, the control's properties // are set to values defined in the page. public void SetAttribute(String name, String value1) { this.get_ViewState().set_Item(name, value1); } //SetAttribute // Implement the GetAttribute method for the control. When // this method is called from a page, the values for the control's // properties can be displayed in the page. public String GetAttribute(String name) { return (String)(this.get_ViewState().get_Item(name)); } //GetAttribute protected void Render(HtmlTextWriter output) { output.Write("<input type=text id= " + this.get_UniqueID()); output.Write(" Value='" + this.get_Text()); output.Write("' Size=" + this.get_Width() + ">"); } //Render } //MyTextBox

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


IAttributeAccessor メソッド

名前 | 説明 | |
---|---|---|
![]() | GetAttribute | クラスによって実装された場合は、指定した属性プロパティをサーバー コントロールから取得します。 |
![]() | SetAttribute | クラスによって実装された場合は、属性とその値を指定し、ASP.NET サーバー コントロールに割り当てます。 |

IAttributeAccessor メンバ
- IAttributeAccessorのページへのリンク