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);
}