IAttributeAccessor-Schnittstelle
Definiert Methoden, über die ASP.NET-Serversteuerelemente einen programmgesteuerten Zugriff auf alle Attribute ermöglichen, die im öffnenden Tag eines Serversteuerelements deklariert wurden.
Namespace: System.Web.UI
Assembly: System.Web (in system.web.dll)
Syntax
'Declaration
Public Interface IAttributeAccessor
'Usage
Dim instance As IAttributeAccessor
public interface IAttributeAccessor
public interface class IAttributeAccessor
public interface IAttributeAccessor
public interface IAttributeAccessor
Hinweise
Beim Erstellen eines benutzerdefinierten Serversteuerelements, das von der WebControl-Klasse, der HtmlControl-Klasse oder der ListItem-Klasse erbt, ermöglicht .NET Framework automatisch den programmgesteuerten Zugriff auf Attribute, da jede dieser Klassen die IAttributeAccessor-Schnittstelle implementiert.
Wenn Sie ein benutzerdefiniertes Serversteuerelement erstellen, das nicht von einer dieser Klassen erbt, und Sie einen programmgesteuerten Zugriff auf Attribute bereitstellen möchten, die nicht den streng typisierten Eigenschaften des Steuerelements entsprechen, müssen Sie die IAttributeAccessor-Schnittstelle implementieren.
Beispiel
' 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
Plattformen
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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
IAttributeAccessor-Member
System.Web.UI-Namespace
HtmlControl
WebControl