Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / AttributeCollection.cs / 1305376 / AttributeCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * AttributeCollection.cs * * Copyright (c) 2000 Microsoft Corporation */ namespace System.Web.UI { using System.IO; using System.Collections; using System.Reflection; using System.Web.UI; using System.Globalization; using System.Security.Permissions; using System.Web.Util; /* * The AttributeCollection represents Attributes on an Html control. */ ////// public sealed class AttributeCollection { private StateBag _bag; private CssStyleCollection _styleColl; /* * Constructs an AttributeCollection given a StateBag. */ ////// The ///class provides object-model access /// to all attributes declared on an HTML server control element. /// /// public AttributeCollection(StateBag bag) { _bag = bag; } /* * Automatically adds new keys. */ ////// public string this[string key] { get { if (_styleColl != null && StringUtil.EqualsIgnoreCase(key, "style")) return _styleColl.Value; else return _bag[key] as string; } set { Add(key, value); } } /* * Returns a collection of keys. */ ////// Gets or sets a specified attribute value. /// ////// public ICollection Keys { get { return _bag.Keys; } } ////// Gets a collection of keys to all the attributes in the /// ///. /// /// public int Count { get { return _bag.Count; } } ////// Gets the number of items in the ///. /// /// public CssStyleCollection CssStyle { get { if (_styleColl == null) { _styleColl = new CssStyleCollection(_bag); } return _styleColl; } } ////// public void Add(string key, string value) { if (_styleColl != null && StringUtil.EqualsIgnoreCase(key, "style")) _styleColl.Value = value; else _bag[key] = value; } public override bool Equals(object o) { // This implementation of Equals relies on mutable properties and is therefore broken, // but we shipped it this way in V1 so it will be a breaking change to fix it. AttributeCollection attrs = o as AttributeCollection; if (attrs != null) { if (attrs.Count != _bag.Count) { return false; } foreach (DictionaryEntry attr in _bag) { if (this[(string)attr.Key] != attrs[(string)attr.Key]) { return false; } } return true; } return false; } public override int GetHashCode() { // This implementation of GetHashCode uses mutable properties but matches the V1 implementation // of Equals. HashCodeCombiner hashCodeCombiner = new HashCodeCombiner(); foreach (DictionaryEntry attr in _bag) { hashCodeCombiner.AddObject(attr.Key); hashCodeCombiner.AddObject(attr.Value); } return hashCodeCombiner.CombinedHash32; } ////// Adds an item to the ///. /// /// public void Remove(string key) { if (_styleColl != null && StringUtil.EqualsIgnoreCase(key, "style")) _styleColl.Clear(); else _bag.Remove(key); } ////// Removes an attribute from the ///. /// /// public void Clear() { _bag.Clear(); if (_styleColl != null) _styleColl.Clear(); } ////// Removes all attributes from the ///. /// /// public void Render(HtmlTextWriter writer) { if (_bag.Count > 0) { IDictionaryEnumerator e = _bag.GetEnumerator(); while (e.MoveNext()) { StateItem item = e.Value as StateItem; if (item != null) { string value = item.Value as string; string key = e.Key as string; if (key != null && value != null) { writer.WriteAttribute(key, value, true /*fEncode*/); } } } } } ///[To be supplied.] ////// public void AddAttributes(HtmlTextWriter writer) { if (_bag.Count > 0) { IDictionaryEnumerator e = _bag.GetEnumerator(); while (e.MoveNext()) { StateItem item = e.Value as StateItem; if (item != null) { string value = item.Value as string; string key = e.Key as string; if (key != null && value != null) { writer.AddAttribute(key, value, true /*fEncode*/); } } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.[To be supplied.] ///
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebPartTransformerAttribute.cs
- Debug.cs
- WizardForm.cs
- ForeignConstraint.cs
- User.cs
- FullTextLine.cs
- AddInController.cs
- WebPartTransformer.cs
- EdmFunctions.cs
- BitmapEffectrendercontext.cs
- PersonalizableTypeEntry.cs
- PowerStatus.cs
- BamlTreeNode.cs
- RecipientInfo.cs
- ErasingStroke.cs
- LinqToSqlWrapper.cs
- ExpressionEditorAttribute.cs
- TextRange.cs
- InfoCardSchemas.cs
- EventlogProvider.cs
- ScrollPatternIdentifiers.cs
- WpfPayload.cs
- CachedFontFace.cs
- CheckBoxBaseAdapter.cs
- CatalogPartCollection.cs
- SharedPersonalizationStateInfo.cs
- PersonalizationDictionary.cs
- EntityWrapperFactory.cs
- ProcessStartInfo.cs
- TransformConverter.cs
- SqlParameter.cs
- CompressStream.cs
- StructuredTypeInfo.cs
- AlgoModule.cs
- XsltContext.cs
- WindowsGraphics.cs
- Rule.cs
- ViewManagerAttribute.cs
- CodeExpressionStatement.cs
- SemanticValue.cs
- ThumbButtonInfoCollection.cs
- Geometry3D.cs
- SerializationException.cs
- ListViewCommandEventArgs.cs
- UIElement.cs
- Permission.cs
- PeerTransportSecurityElement.cs
- OleDbParameterCollection.cs
- DynamicPropertyReader.cs
- PartBasedPackageProperties.cs
- RijndaelManaged.cs
- BooleanKeyFrameCollection.cs
- ContractCodeDomInfo.cs
- Grid.cs
- GridViewCancelEditEventArgs.cs
- CharacterMetrics.cs
- XmlWrappingWriter.cs
- ItemsControl.cs
- SaveCardRequest.cs
- DataGridViewCellLinkedList.cs
- GC.cs
- DateRangeEvent.cs
- path.cs
- ApplicationProxyInternal.cs
- UnmanagedMemoryStreamWrapper.cs
- EventManager.cs
- DbLambda.cs
- SqlFacetAttribute.cs
- EntityDataSourceSelectingEventArgs.cs
- XmlBindingWorker.cs
- WindowsBrush.cs
- CheckBox.cs
- DataGridViewButtonColumn.cs
- Journal.cs
- ColorPalette.cs
- RunInstallerAttribute.cs
- ConfigurationValidatorBase.cs
- PaperSize.cs
- KnownIds.cs
- PersonalizationState.cs
- MetaModel.cs
- ActiveXSite.cs
- XmlILAnnotation.cs
- FileVersionInfo.cs
- ObjectNavigationPropertyMapping.cs
- ProfilePropertySettings.cs
- EntityClassGenerator.cs
- FillErrorEventArgs.cs
- TraceFilter.cs
- PocoEntityKeyStrategy.cs
- ToolStripPanelCell.cs
- _ChunkParse.cs
- ActivityScheduledRecord.cs
- __ComObject.cs
- HyperLinkDesigner.cs
- SafeRegistryKey.cs
- IdnElement.cs
- StringWriter.cs
- CultureTable.cs
- TextParagraphProperties.cs