次の方法で共有


IAttributeAccessor インターフェイス

サーバー コントロールの開始タグで宣言された任意の属性にプログラムによってアクセスするために、ASP.NET サーバー コントロールで使用されるメソッドを定義します。

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)

構文

'宣言
Public Interface IAttributeAccessor
'使用
Dim instance As IAttributeAccessor
public interface IAttributeAccessor
public interface class IAttributeAccessor
public interface IAttributeAccessor
public interface IAttributeAccessor
適用できません。

解説

.NET Framework では、WebControlHtmlControlListItem の各クラスから継承するカスタム サーバー コントロールを作成する場合、これらの各クラスは 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 Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

バージョン情報

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

参照

関連項目

IAttributeAccessor メンバ
System.Web.UI 名前空間
HtmlControl
WebControl