ASP.NET.in.a.Nutshell.Second.Edition [Electronic resources]

G. andrew Duthie; matthew Macdonald

نسخه متنی -صفحه : 873/ 395
نمايش فراداده

AttributeCollection

System.Web.UI (system.web.dll)sealed class

AttributeCollection is a name/value collection of all attributes declared in the opening tag of an ASP.NET server control (which should not be confused with .NET metadata attributes). For example, an HTML text area element has rows and cols attributes that specify its size. You can access and modify the collection of control attributes for any HTML server control through the System.Web.UI.HtmlControls.HtmlControl.Attributes collection. You can also access most important attributes as control properties. Note that you cannot iterate through the AttributeCollection class because it does not directly implement the System.Collections.IEnumerable interface. Use the read-only Keys collection instead.

Web Controls also provide an attribute collection through the System.Web.UI.WebControls.WebControl.Attributes property. However, because web controls are "abstracted away" from the underlying HTML interface code, you cannot directly access the underlying attributes for the composite HTML elements of a control. Instead, this collection will typically contain a single style attribute. You can still add your own attributes to the collection (for example, TextBox1.Attributes("key") = strKey). These attributes will be rendered to the client by most web controls.

One useful way to use the AttributeCollection class is to add a JavaScript event to a control. For example, TextBox1.Attributes["onblur"] = "javascript:alert('Focus lost!);"; adds a "lost focus" JavaScript event. This will work for HTML controls and some simple web controls (like System.Web.UI.WebControls.TextBox), but not for others (like System.Web.UI.WebControls.Calendar).

public sealed class 

AttributeCollection { // Public Constructors public

AttributeCollection (StateBag

bag ); // Public Instance Properties public int

Count {get; } public CssStyleCollection

CssStyle {get; } public ICollection

Keys {get; } public string

this [string

key ]{set; get; } // Public Instance Methods public void

Add (string

key , string

value ); public void

AddAttributes (HtmlTextWriter

writer ); public void

Clear ( ); public void

Remove (string

key ); public void

Render (HtmlTextWriter

writer ); }

Returned By

System.Web.UI.HtmlControls.HtmlControl.Attributes, UserControl.Attributes, System.Web.UI.WebControls.ListItem.Attributes, System.Web.UI.WebControls.WebControl.Attributes