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
- ParamArrayAttribute.cs
- ExceptionUtil.cs
- Reference.cs
- Dictionary.cs
- StringConcat.cs
- Relationship.cs
- TraceContextRecord.cs
- FileDialog.cs
- BinarySerializer.cs
- UTF7Encoding.cs
- SafeProcessHandle.cs
- CredentialCache.cs
- VariableQuery.cs
- DatatypeImplementation.cs
- DocumentSequence.cs
- ClientSideProviderDescription.cs
- XslNumber.cs
- Color.cs
- TemplateControlBuildProvider.cs
- VectorCollectionValueSerializer.cs
- SqlServer2KCompatibilityAnnotation.cs
- XamlBuildTaskServices.cs
- ConfigXmlComment.cs
- TableSectionStyle.cs
- SelectionWordBreaker.cs
- VisualStyleTypesAndProperties.cs
- GeneralTransform.cs
- DataViewSettingCollection.cs
- Repeater.cs
- SafeNativeMethodsMilCoreApi.cs
- TraceHandler.cs
- RectangleConverter.cs
- X509Utils.cs
- WebPartPersonalization.cs
- CompensationToken.cs
- DateTime.cs
- columnmapkeybuilder.cs
- SecondaryIndexList.cs
- ProfileProvider.cs
- MetadataArtifactLoaderFile.cs
- SnapshotChangeTrackingStrategy.cs
- UidManager.cs
- RootBrowserWindowAutomationPeer.cs
- DrawingBrush.cs
- CollectionViewGroup.cs
- SectionVisual.cs
- PageContentCollection.cs
- FileAuthorizationModule.cs
- TextFormatter.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- webproxy.cs
- AppSettingsReader.cs
- ManualResetEvent.cs
- TimeIntervalCollection.cs
- CategoryNameCollection.cs
- ServiceModelEnumValidator.cs
- MetadataPropertyAttribute.cs
- CodeAttributeDeclaration.cs
- MethodExpr.cs
- MetadataPropertyAttribute.cs
- NumericUpDown.cs
- ConditionalAttribute.cs
- AliasGenerator.cs
- FontSizeConverter.cs
- Activator.cs
- UserControlParser.cs
- ComContractElementCollection.cs
- EntityClassGenerator.cs
- ZipIOCentralDirectoryFileHeader.cs
- StorageBasedPackageProperties.cs
- RewritingSimplifier.cs
- TreeViewImageIndexConverter.cs
- Stream.cs
- StringHandle.cs
- SafeBitVector32.cs
- SecurityDescriptor.cs
- TextTreeInsertUndoUnit.cs
- StringFormat.cs
- StorageAssociationSetMapping.cs
- PolicyValidationException.cs
- JapaneseCalendar.cs
- PolicyUnit.cs
- LogFlushAsyncResult.cs
- TdsValueSetter.cs
- HostExecutionContextManager.cs
- DefaultObjectMappingItemCollection.cs
- TriggerBase.cs
- SubqueryTrackingVisitor.cs
- FreezableDefaultValueFactory.cs
- GridViewRowPresenter.cs
- StorageEntitySetMapping.cs
- CodeNamespaceCollection.cs
- Parameter.cs
- SwitchAttribute.cs
- FakeModelItemImpl.cs
- LogWriteRestartAreaAsyncResult.cs
- ProgressChangedEventArgs.cs
- GridViewCommandEventArgs.cs
- ObjectCloneHelper.cs
- AnnotationHelper.cs