Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / DataKeyArray.cs / 1305376 / DataKeyArray.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; ////// public sealed class DataKeyArray : ICollection, IStateManager { private ArrayList _keys; private bool _isTracking; ////// public DataKeyArray(ArrayList keys) { this._keys = keys; } ///Initializes a new instance of the ///class. /// public int Count { get { return _keys.Count; } } ///Gets the number of objects in the collection. This property is read-only. ////// public bool IsReadOnly { get { return false; } } ///Gets the value that specifies whether items in the ///can be /// modified. This property is read-only. /// public bool IsSynchronized { get { return false; } } ///Gets a value that indicates whether the ///is /// thread-safe. This property is read-only. /// public object SyncRoot { get { return this; } } ///Gets the object used to synchronize access to the collection. This property is read-only. ////// public DataKey this[int index] { get { return _keys[index] as DataKey; } } ///Gets a ///at the specified index in the collection. This property is read-only. /// public void CopyTo(DataKey[] array, int index) { ((ICollection)this).CopyTo(array, index); } ///Copies the contents of the entire collection into an ///appending at /// the specified index of the . void ICollection.CopyTo(Array array, int index) { for (IEnumerator e = this.GetEnumerator(); e.MoveNext();) array.SetValue(e.Current, index++); } /// /// public IEnumerator GetEnumerator() { return _keys.GetEnumerator(); } #region IStateManager implementation ///Creates an enumerator for the ///used to iterate /// through the collection. bool IStateManager.IsTrackingViewState { get { return _isTracking; } } /// void IStateManager.LoadViewState(object state) { if (state != null) { object[] keysState = (object[])state; for (int i = 0; i < keysState.Length; i++) { if (keysState[i] != null) { ((IStateManager)_keys[i]).LoadViewState(keysState[i]); } } } } /// object IStateManager.SaveViewState() { int keyCount = _keys.Count; object[] keysState = new object[keyCount]; bool savedState = false; for (int i = 0; i < keyCount; i++) { keysState[i] = ((IStateManager)_keys[i]).SaveViewState(); if (keysState[i] != null) savedState = true; } return savedState ? keysState : null; } /// void IStateManager.TrackViewState() { _isTracking = true; int keyCount = _keys.Count; for (int i = 0; i < keyCount; i++) { ((IStateManager)_keys[i]).TrackViewState(); } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; ////// public sealed class DataKeyArray : ICollection, IStateManager { private ArrayList _keys; private bool _isTracking; ////// public DataKeyArray(ArrayList keys) { this._keys = keys; } ///Initializes a new instance of the ///class. /// public int Count { get { return _keys.Count; } } ///Gets the number of objects in the collection. This property is read-only. ////// public bool IsReadOnly { get { return false; } } ///Gets the value that specifies whether items in the ///can be /// modified. This property is read-only. /// public bool IsSynchronized { get { return false; } } ///Gets a value that indicates whether the ///is /// thread-safe. This property is read-only. /// public object SyncRoot { get { return this; } } ///Gets the object used to synchronize access to the collection. This property is read-only. ////// public DataKey this[int index] { get { return _keys[index] as DataKey; } } ///Gets a ///at the specified index in the collection. This property is read-only. /// public void CopyTo(DataKey[] array, int index) { ((ICollection)this).CopyTo(array, index); } ///Copies the contents of the entire collection into an ///appending at /// the specified index of the . void ICollection.CopyTo(Array array, int index) { for (IEnumerator e = this.GetEnumerator(); e.MoveNext();) array.SetValue(e.Current, index++); } /// /// public IEnumerator GetEnumerator() { return _keys.GetEnumerator(); } #region IStateManager implementation ///Creates an enumerator for the ///used to iterate /// through the collection. bool IStateManager.IsTrackingViewState { get { return _isTracking; } } /// void IStateManager.LoadViewState(object state) { if (state != null) { object[] keysState = (object[])state; for (int i = 0; i < keysState.Length; i++) { if (keysState[i] != null) { ((IStateManager)_keys[i]).LoadViewState(keysState[i]); } } } } /// object IStateManager.SaveViewState() { int keyCount = _keys.Count; object[] keysState = new object[keyCount]; bool savedState = false; for (int i = 0; i < keyCount; i++) { keysState[i] = ((IStateManager)_keys[i]).SaveViewState(); if (keysState[i] != null) savedState = true; } return savedState ? keysState : null; } /// void IStateManager.TrackViewState() { _isTracking = true; int keyCount = _keys.Count; for (int i = 0; i < keyCount; i++) { ((IStateManager)_keys[i]).TrackViewState(); } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SchemaType.cs
- ClientSettingsStore.cs
- CodeTryCatchFinallyStatement.cs
- Visual3DCollection.cs
- ListSortDescriptionCollection.cs
- SchemaCollectionCompiler.cs
- MachineSettingsSection.cs
- ClientFormsIdentity.cs
- WebEventTraceProvider.cs
- EntityProviderFactory.cs
- XhtmlStyleClass.cs
- Add.cs
- ManagementInstaller.cs
- RelationshipSet.cs
- QilTargetType.cs
- PeerMaintainer.cs
- IResourceProvider.cs
- FixedElement.cs
- HttpServerChannel.cs
- TemplateBindingExtensionConverter.cs
- DataSourceUtil.cs
- ConcurrentDictionary.cs
- EditorPart.cs
- documentsequencetextview.cs
- SoapIgnoreAttribute.cs
- PanelDesigner.cs
- HttpDictionary.cs
- CollectionsUtil.cs
- WindowsNonControl.cs
- CallTemplateAction.cs
- DataGridCellInfo.cs
- EdmToObjectNamespaceMap.cs
- CodeObjectCreateExpression.cs
- MailDefinitionBodyFileNameEditor.cs
- XmlDeclaration.cs
- OdbcReferenceCollection.cs
- OwnerDrawPropertyBag.cs
- SafeCoTaskMem.cs
- ReceiveMessageRecord.cs
- PackWebResponse.cs
- TextWriterTraceListener.cs
- InternalMappingException.cs
- ClickablePoint.cs
- httpapplicationstate.cs
- RootBuilder.cs
- TableHeaderCell.cs
- BrowserDefinition.cs
- ListViewContainer.cs
- Point4DValueSerializer.cs
- ProxyElement.cs
- WorkItem.cs
- CheckBoxStandardAdapter.cs
- LockRecursionException.cs
- RMEnrollmentPage2.cs
- NativeMethods.cs
- PeerCollaboration.cs
- BindingMemberInfo.cs
- Wildcard.cs
- MessageQueueKey.cs
- FontResourceCache.cs
- ScrollableControlDesigner.cs
- ProgressBarAutomationPeer.cs
- SqlClientPermission.cs
- PropertyManager.cs
- ColorIndependentAnimationStorage.cs
- MultipleCopiesCollection.cs
- XPathAncestorIterator.cs
- XmlWrappingReader.cs
- IPPacketInformation.cs
- BoundingRectTracker.cs
- ByteStreamMessageEncodingElement.cs
- WindowsTooltip.cs
- XmlSignatureProperties.cs
- CollectionCodeDomSerializer.cs
- CompiledXpathExpr.cs
- AssemblyAttributes.cs
- TextRangeEditLists.cs
- ACL.cs
- ObjectDataSourceFilteringEventArgs.cs
- QueryResults.cs
- SingleObjectCollection.cs
- ImmComposition.cs
- TokenBasedSetEnumerator.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- Dynamic.cs
- IpcPort.cs
- ThreadStaticAttribute.cs
- PermissionSetEnumerator.cs
- BamlStream.cs
- ListCollectionView.cs
- SqlUnionizer.cs
- PublishLicense.cs
- ComplexTypeEmitter.cs
- ParallelDesigner.cs
- TypeExtension.cs
- CAGDesigner.cs
- ActivityTrace.cs
- SqlBulkCopy.cs
- DecoderFallback.cs
- PageCodeDomTreeGenerator.cs