Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebControls / DataKeyArray.cs / 1 / DataKeyArray.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.Security.Permissions;
///
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class DataKeyArray : ICollection, IStateManager {
private ArrayList _keys;
private bool _isTracking;
///
/// Initializes a new instance of the class.
///
public DataKeyArray(ArrayList keys) {
this._keys = keys;
}
///
/// Gets the number of objects in the collection. This property is read-only.
///
public int Count {
get {
return _keys.Count;
}
}
///
/// Gets the value that specifies whether items in the can be
/// modified. This property is read-only.
///
public bool IsReadOnly {
get {
return false;
}
}
///
/// Gets a value that indicates whether the is
/// thread-safe. This property is read-only.
///
public bool IsSynchronized {
get {
return false;
}
}
///
/// Gets the object used to synchronize access to the collection. This property is read-only.
///
public object SyncRoot {
get {
return this;
}
}
///
/// Gets a at the specified index in the collection. This property is read-only.
///
public DataKey this[int index] {
get {
return _keys[index] as DataKey;
}
}
///
/// Copies the contents of the entire collection into an appending at
/// the specified index of the .
///
public void CopyTo(DataKey[] array, int index) {
((ICollection)this).CopyTo(array, index);
}
///
void ICollection.CopyTo(Array array, int index) {
for (IEnumerator e = this.GetEnumerator(); e.MoveNext();)
array.SetValue(e.Current, index++);
}
///
/// Creates an enumerator for the used to iterate
/// through the collection.
///
public IEnumerator GetEnumerator() {
return _keys.GetEnumerator();
}
#region IStateManager implementation
///
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
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AppSettingsExpressionBuilder.cs
- SiteMapDataSourceView.cs
- DeobfuscatingStream.cs
- DefaultPrintController.cs
- DataListItemCollection.cs
- SoapHeaderAttribute.cs
- KeyFrames.cs
- BamlLocalizableResourceKey.cs
- ProfilePropertyNameValidator.cs
- Pair.cs
- ContextCorrelationInitializer.cs
- __Error.cs
- Region.cs
- UshortList2.cs
- Identity.cs
- XmlBindingWorker.cs
- SqlDependency.cs
- KeyPressEvent.cs
- BinHexEncoder.cs
- EdmItemCollection.cs
- IncrementalCompileAnalyzer.cs
- DocumentXmlWriter.cs
- ISessionStateStore.cs
- Inflater.cs
- NavigatorInput.cs
- ProgressPage.cs
- ContainerControl.cs
- SqlAliasesReferenced.cs
- SmtpLoginAuthenticationModule.cs
- HandlerFactoryWrapper.cs
- ImageFormatConverter.cs
- UndirectedGraph.cs
- DeclarationUpdate.cs
- AsymmetricSignatureDeformatter.cs
- Int32AnimationBase.cs
- StatusBarPanel.cs
- CategoryGridEntry.cs
- UriScheme.cs
- DataStorage.cs
- PeerApplication.cs
- StreamSecurityUpgradeAcceptorBase.cs
- EventProxy.cs
- SafeEventHandle.cs
- EditorZoneDesigner.cs
- ButtonBaseAutomationPeer.cs
- ToolboxItemCollection.cs
- ToolStripGrip.cs
- ISAPIWorkerRequest.cs
- ResourceCodeDomSerializer.cs
- RemoteArgument.cs
- InputLanguageCollection.cs
- LinkArea.cs
- RSAPKCS1KeyExchangeFormatter.cs
- ConfigurationSchemaErrors.cs
- Hashtable.cs
- SchemaMapping.cs
- Converter.cs
- ControlCachePolicy.cs
- HttpListenerRequest.cs
- NativeCppClassAttribute.cs
- DocumentStream.cs
- BrowserInteropHelper.cs
- QueueProcessor.cs
- IResourceProvider.cs
- BufferModesCollection.cs
- FactoryRecord.cs
- ItemMap.cs
- CommonRemoteMemoryBlock.cs
- PerformanceCounterCategory.cs
- SerialReceived.cs
- Lock.cs
- TextInfo.cs
- CertificateElement.cs
- OracleBoolean.cs
- DependencyPropertyConverter.cs
- ObjectStateFormatter.cs
- AnnotationResource.cs
- HttpSessionStateWrapper.cs
- Token.cs
- InstanceKeyView.cs
- MultiTrigger.cs
- UpdateManifestForBrowserApplication.cs
- Crypto.cs
- TraceHandlerErrorFormatter.cs
- MappedMetaModel.cs
- DecoderExceptionFallback.cs
- URLString.cs
- StaticFileHandler.cs
- PageThemeBuildProvider.cs
- AssemblyHelper.cs
- C14NUtil.cs
- SiteMembershipCondition.cs
- MinimizableAttributeTypeConverter.cs
- MemberAccessException.cs
- ClientFormsIdentity.cs
- DependencyObjectType.cs
- TextProviderWrapper.cs
- TypeEnumerableViewSchema.cs
- WindowPattern.cs
- RegexInterpreter.cs