Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / AttributeCollection.cs / 1 / 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. */ ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 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*/); } } } } } } }[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InputProcessorProfiles.cs
- DbConnectionOptions.cs
- CodeDomSerializationProvider.cs
- ElementHostPropertyMap.cs
- webclient.cs
- ItemsControlAutomationPeer.cs
- PropertyDescriptor.cs
- BigInt.cs
- VersionPair.cs
- ProcessHostMapPath.cs
- GCHandleCookieTable.cs
- VBCodeProvider.cs
- AnnotationStore.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- InheritedPropertyChangedEventArgs.cs
- ResourceSet.cs
- ApplicationManager.cs
- ConfigXmlComment.cs
- ComboBoxRenderer.cs
- SecurityProtocolFactory.cs
- PropertyDescriptorCollection.cs
- CounterSample.cs
- BuildDependencySet.cs
- HighlightOverlayGlyph.cs
- SettingsPropertyCollection.cs
- DeploymentSection.cs
- FixedSOMFixedBlock.cs
- PreservationFileReader.cs
- OrthographicCamera.cs
- TableCellCollection.cs
- TreeNodeStyleCollection.cs
- Number.cs
- DataGridViewColumnCollectionDialog.cs
- RegexGroup.cs
- Package.cs
- FlowchartSizeFeature.cs
- PrintDialogDesigner.cs
- DesignTimeVisibleAttribute.cs
- _NegotiateClient.cs
- ByteStack.cs
- SetIterators.cs
- DictionaryChange.cs
- GridItemProviderWrapper.cs
- EditorPartChrome.cs
- TemplateField.cs
- ItemAutomationPeer.cs
- ClientSettingsProvider.cs
- HtmlLink.cs
- ToolStripItemTextRenderEventArgs.cs
- GC.cs
- SelectedPathEditor.cs
- TraceUtility.cs
- JavaScriptString.cs
- CounterSet.cs
- SiteMapHierarchicalDataSourceView.cs
- TextEditorMouse.cs
- Expr.cs
- CodePropertyReferenceExpression.cs
- XmlComment.cs
- ReversePositionQuery.cs
- ClientSettingsStore.cs
- EventHandlerList.cs
- RefreshPropertiesAttribute.cs
- ExtendedPropertyCollection.cs
- URLMembershipCondition.cs
- ChangePassword.cs
- DateTimeValueSerializerContext.cs
- KnownColorTable.cs
- indexingfiltermarshaler.cs
- COM2ExtendedUITypeEditor.cs
- RawTextInputReport.cs
- CodeDomExtensionMethods.cs
- OpenFileDialog.cs
- XPathExpr.cs
- DesignerActionItemCollection.cs
- AppDomainShutdownMonitor.cs
- JoinQueryOperator.cs
- AttributeProviderAttribute.cs
- DataColumnCollection.cs
- ObjectViewFactory.cs
- ListViewHitTestInfo.cs
- XD.cs
- QueryOptionExpression.cs
- XmlLoader.cs
- BookmarkWorkItem.cs
- DependencyPropertyDescriptor.cs
- XmlILIndex.cs
- DBSchemaRow.cs
- WebPartDisplayMode.cs
- MaterialGroup.cs
- SQLInt16.cs
- AnnouncementInnerClientCD1.cs
- SecurityPolicySection.cs
- ApplicationFileCodeDomTreeGenerator.cs
- ResourceExpression.cs
- WebHostUnsafeNativeMethods.cs
- ChangeTracker.cs
- OleDbEnumerator.cs
- ImportContext.cs
- WmlObjectListAdapter.cs